CN110007983B - 粒子喷射动画的实现方法、介质、装置和计算设备 - Google Patents
粒子喷射动画的实现方法、介质、装置和计算设备 Download PDFInfo
- Publication number
- CN110007983B CN110007983B CN201910255682.3A CN201910255682A CN110007983B CN 110007983 B CN110007983 B CN 110007983B CN 201910255682 A CN201910255682 A CN 201910255682A CN 110007983 B CN110007983 B CN 110007983B
- Authority
- CN
- China
- Prior art keywords
- particle
- window animation
- particle element
- animation object
- window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明的实施方式提供了一种粒子喷射动画的实现方法,包括:响应于第一触发操作,在窗口动画共享池中生成与第一触发操作对应的窗口动画对象,包括:窗口动画对象的生命周期、窗口动画对象所包含的粒子元素的数量和每个粒子元素的属性信息,粒子元素的属性信息与时间相关;基于窗口动画对象所包含的粒子元素的数量,为窗口动画对象生成一个或多个粒子元素对象;每隔第一预设时间遍历窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。本发明的实施方式还提供了一种粒子喷射动画的实现装置、介质和计算设备。
Description
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及粒子喷射动画的实现方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有技术包括三种常用的动画实现方式,分别是帧动画、补间动画和属性动画。帧动画主要用来实现固定的动画,它的每一帧是确定的,而对于一个粒子喷射动画来说,由于粒子元素随时间变化的轨迹是不确定的,而且不同时刻粒子元素的数量也是不确定的,导致无法使用帧动画实现。使用补间动画和属性动画虽然可以实现粒子喷射动画,但都需要将粒子素材显示在操作系统的固有控件上,通过较为复杂的控制逻辑控制含有粒子元素的固有控件的布局来实现多个粒子元素同时显示的效果,形成粒子喷射的视觉。此外,上述粒子喷射动画还受到操作系统设置的刷新率的限制,无法调节粒子喷射动画的精细程度。
发明内容
为此,非常需要一种改进的粒子喷射动画的实现方法,以实现控制逻辑更为简单、精细程度更高的粒子喷射动画。
在本上下文中,本发明的实施方式期望提供一种粒子喷射动画的实现方法和装置。
在本发明实施方式的第一方面中,提供了一种粒子喷射动画的实现方法,包括:响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象,其中,所述窗口动画对象包括:所述窗口动画对象的生命周期、所述窗口动画对象所包含的粒子元素的数量、和每个粒子元素的属性信息,每个粒子元素的属性信息与时间相关。接着,基于所述窗口动画对象所包含的粒子元素的数量,为所述窗口动画对象生成一个或多个粒子元素对象。以及,每隔第一预设时间遍历所述窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。
在本发明的一个实施例中,上述在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象包括:检查所述窗口动画共享池中是否存在生命周期已结束的窗口动画对象。如果是,则复用所述生命周期已结束的窗口动画对象,将所述生命周期已结束的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。以及,如果否,则创建新的窗口动画对象,将所述新的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。
在本发明的另一实施例中,上述响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象包括:响应于用户点击第一控件的操作,在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。以及,响应于用户按压所述第一控件超过第一预定时长的操作,在第二预定时长内每隔第二预设时间在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。
在本发明的又一实施例中,上述为所述窗口动画对象生成一个或多个粒子元素对象包括:获取与所述一个或多个粒子元素对象对应的素材图片,其中,所述素材图片的存储管理基于最近最少使用算法进行。
在本发明的再一实施例中,每个粒子元素的属性信息包括:每个粒子元素的属性信息与时间的对应关系。所述基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像包括:对于该窗口动画对象所包含的每个粒子元素,基于该粒子元素的属性信息与时间的对应关系,计算与该粒子元素所对应的粒子元素对象在该窗口动画对象的当前生命时刻的属性值;以及,基于所计算的属性值,在画布上绘制该粒子元素对象在该窗口动画对象的当前生命时刻的图像。
在本发明的再一实施例中,每个粒子元素的属性信息包括如下至少一种:该粒子元素的时长、该粒子元素的类型、该粒子元素的延时时长、该粒子元素的初始坐标、该粒子元素的初始速度、该粒子元素的初始颜色、该粒子元素的初始透明度、该粒子元素的初始缩放比例、该粒子元素的初始旋转程度、该粒子元素的运动轨迹、该粒子元素的速度与时间的对应关系、该粒子元素的颜色与时间的对应关系、该粒子元素的透明度与时间的对应关系、该粒子元素的缩放比例与时间的对应关系、以及该粒子元素的旋转程度与时间的对应关系。
在本发明实施方式的第二方面中,提供了一种粒子喷射动画的实现装置,包括:动作响应模块、粒子素材生成模块、以及绘制模块。动作响应模块用于响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象,其中,所述窗口动画对象包括:所述窗口动画对象的生命周期、所述窗口动画对象所包含的粒子元素的数量、和每个粒子元素的属性信息,每个粒子元素的属性信息与时间相关。粒子素材生成模块用于基于所述窗口动画对象所包含的粒子元素的数量,为所述窗口动画对象生成一个或多个粒子元素对象。以及,绘制模块用于每隔第一预设时间遍历所述窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。
在本发明的一个实施例中,动作响应模块包括:检查子模块、复用子模块、以及创建子模块。检查子模块用于检查所述窗口动画共享池中是否存在生命周期已结束的窗口动画对象。复用子模块用于当存在生命周期已结束的窗口动画对象时,复用所述生命周期已结束的窗口动画对象,将所述生命周期已结束的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。以及,创建子模块用于当不存在生命周期已结束的窗口动画对象时,创建新的窗口动画对象,将所述新的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。
在本发明的另一实施例中,所述动作响应模块包括:第一生成子模块和第二生成子模块。第一生成子模块用于响应于用户点击第一控件的操作,在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。以及,第二生成子模块用于响应于用户按压所述第一控件超过第一预定时长的操作,在第二预定时长内每隔第二预设时间在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。
在本发明的又一实施例中,粒子素材生成模块包括素材图片获取子模块,用于获取与所述一个或多个粒子元素对象对应的素材图片,其中,所述素材图片的存储管理基于最近最少使用算法进行。
在本发明的再一实施例中,每个粒子元素的属性信息包括每个粒子元素的属性信息与时间的对应关系。绘制模块包括:计算子模块和绘制子模块。计算子模块用于对于该窗口动画对象所包含的每个粒子元素,基于该粒子元素的属性信息与时间的对应关系,计算与该粒子元素所对应的粒子元素对象在该窗口动画对象的当前生命时刻的属性值。以及,绘制子模块用于基于所计算的属性值,在画布上绘制该粒子元素对象在该窗口动画对象的当前生命时刻的图像。
在本发明的再一实施例中,每个粒子元素的属性信息包括如下至少一种:该粒子元素的时长、该粒子元素的类型、该粒子元素的延时时长、该粒子元素的初始坐标、该粒子元素的初始速度、该粒子元素的初始颜色、该粒子元素的初始透明度、该粒子元素的初始缩放比例、该粒子元素的初始旋转程度、该粒子元素的运动轨迹、该粒子元素的速度与时间的对应关系、该粒子元素的颜色与时间的对应关系、该粒子元素的透明度与时间的对应关系、该粒子元素的缩放比例与时间的对应关系、以及该粒子元素的旋转程度与时间的对应关系。
在本发明实施方式的第三方面中,提供了一种介质,存储有计算机可执行指令,指令在被处理器执行时用于实现:上述实施例中任一项所述的粒子喷射动画的实现方法。
在本发明实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,处理器执行指令时实现:上述实施例中任一项所述的粒子喷射动画的实现方法。
根据本发明实施方式的粒子喷射动画的实现方法和装置,以窗口动画作为粒子元素的管理者,基于窗口动画生成粒子元素,通过每个窗口动画对象中粒子元素对象的动态组合以及窗口动画对象之间的动态组合实现粒子喷射动画效果。与现有技术相比,无需使用操作系统的固有控件来显示粒子元素,无需依赖操作系统对固有控件进行控制的复杂逻辑,并且本方案的绘制周期不会受到操作系统设置的刷新率的限制,可以通过调节绘制周期来调节粒子喷射动画的精细程度。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的粒子喷射动画的实现方法及其装置的应用场景;
图2示意性地示出了根据本发明一个实施例的粒子喷射动画的实现方法的流程图;
图3A示意性地示出了根据本发明一个实施例的粒子喷射动画的效果图;
图3B示意性地示出了根据本发明一个实施例的窗口动画对象的生命周期的示意图;
图3C示意性地示出了根据本发明一个实施例的实现粒子喷射动画的架构图;
图4示意性地示出了根据本发明一个实施例的粒子喷射动画的实现装置的框图;
图5示意性地示出了根据本发明另一个实施例的粒子喷射动画的实现装置的框图;
图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图;以及
图7示意性地示出了根据本发明实施方式的计算设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种粒子喷射动画的实现方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语包括:粒子喷射动画、窗口动画共享池、窗口动画对象、粒子元素对象等。
其中,粒子喷射动画用于展现类似于粒子喷射的动画效果,例如烟花绽放、泉水喷涌、星云变换、下雨、爆炸等动画效果都可以通过粒子喷射动画来实现。粒子喷射动画包含一个或多个粒子元素(如烟花动画中的光点、喷泉动画中的水滴、星云动画中的星点、下雨动画中的雨滴、爆炸动画中的光点等),同一时刻不同粒子元素的属性(如形状、颜色、位置、方向、位图、透明度等)可以相同或不同,粒子元素的数量随时间变化,粒子元素的属性随时间变化。窗口动画相当于粒子元素的容器,一个窗口动画中可包含一个或多个粒子元素。粒子喷射动画在同一时刻可以展示一个或多个窗口动画。窗口动画的实例化对象称为窗口动画对象,粒子元素的实例化对象称为粒子元素对象。窗口动画共享池用于管理窗口动画对象的生命周期。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
在实现本公开构思的过程中,虽然使用补间动画和属性动画可以实现粒子喷射动画,但都需要将粒子素材显示在操作系统的固有控件上,需要通过较为复杂的控制逻辑控制含有粒子素材的固有控件的布局来实现多个粒子同时显示的效果,形成粒子喷射的视觉。此外,上述粒子喷射动画还受到操作系统设置的刷新率的限制,无法调节粒子喷射动画的精细程度。
为此,本发明实施例提供了一种粒子喷射动画的实现方法和装置,该方法包括:响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象。其中,所述窗口动画对象包括:所述窗口动画对象的生命周期、所述窗口动画对象所包含的粒子元素的数量、和每个粒子元素的属性信息。每个粒子元素的属性信息与时间相关。基于所述窗口动画对象所包含的粒子元素的数量,为所述窗口动画对象生成一个或多个粒子元素对象。每隔第一预设时间遍历所述窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。本方案以窗口动画作为粒子元素的管理者,基于窗口动画生成粒子元素,通过每个窗口动画对象中粒子元素对象的动态组合以及窗口动画对象之间的动态组合实现粒子喷射动画效果。与现有技术相比,无需使用操作系统的固有控件来显示粒子元素,无需依赖操作系统对固有控件进行控制的复杂逻辑,并且本方案的绘制周期不会受到操作系统设置的刷新率的限制,可以通过调节绘制周期来调节粒子喷射动画的精细程度。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1详细阐述本发明实施例的粒子喷射动画的实现方法及其装置的应用场景。
图1示意性地示出了根据本发明实施方式的粒子喷射动画的实现方法及其装置的应用场景,在图1所示的应用场景中,可以包括终端设备101、102、103,网络104和服务器105。
网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如新闻类应用、社交类应用、购物类应用、网页浏览器应用、搜索类应用等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的粒子喷射动画的实现方法一般可以由终端设备101、102、103执行。相应地,本公开实施例所提供的粒子喷射动画的实现装置一般可以设置于终端设备101、102、103中。本公开实施例所提供的粒子喷射动画的实现方法也可以由不同于终端设备101、102、103且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的粒子喷射动画的实现装置也可以设置于不同于终端设备101、102、103且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
示例性方法
下面结合图1的应用场景,参考图2~图3C来描述根据本发明示例性实施方式的粒子喷射动画的实现方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示意性地示出了根据本发明一个实施例的粒子喷射动画的实现方法的流程图。如图2所示,该方法包括如下操作:
操作S201,响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象。
其中,所述窗口动画对象包括:所述窗口动画对象的生命周期、所述窗口动画对象所包含的粒子元素的数量、和每个粒子元素的属性信息,每个粒子元素的属性信息与时间相关。本操作针对不同的触发操作生成不同的窗口动画对象,不同的窗口动画对象分别定义各自的生命周期,不同的窗口动画对象分别定义各自包含的粒子元素的数量和属性信息。每个窗口动画对象包含一个或多个粒子元素,每个粒子元素在其所属的窗口动画对象的生命周期内具有与时间相关的属性信息。
操作S202,基于所述窗口动画对象所包含的粒子元素的数量,为所述窗口动画对象生成一个或多个粒子元素对象。
本操作根据每个窗口动画对象对于粒子元素的定义内容生成相应的粒子元素对象。
操作S203,每隔第一预设时间遍历所述窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。
其中,窗口动画共享池相当于所有窗口动画对象的管理者,用于管理窗口动画对象的生命周期。每个窗口动画对象的生命从该窗口动画对象生成时开始,至该窗口动画对象的生命周期结束时截止。本操作通过周期性地绘制窗口动画共享池中生命周期未结束的各窗口动画对象所包含的粒子在绘制时刻的图像,可以展现单个窗口动画对象的效果,也可以展现多个窗口对象组合的效果,其中与一个或多个窗口动画对象中的粒子元素对象对应的图像随时间的变化能够展现粒子喷射的动画效果。
可见,图2所示的方法以窗口动画作为粒子元素的管理者,基于窗口动画生成粒子元素,通过每个窗口动画对象中粒子元素对象的动态组合以及窗口动画对象之间的动态组合实现粒子喷射动画效果。与现有技术相比,无需使用操作系统的固有控件来显示粒子元素,无需依赖操作系统对固有控件进行控制的复杂逻辑,并且本方案的绘制周期不会受到操作系统设置的刷新率的限制,可以通过调节绘制周期来调节粒子喷射动画的精细程度。
例如,对于一个客户端应用来说,响应于用户在时刻t1的点赞操作,在窗口动画共享池中生成与该点赞操作对应的窗口动画对象1,该窗口动画对象1的生命周期为T1,该窗口动画对象1包含4个粒子元素,每个粒子元素各自具有与时间相关的属性信息。基于该窗口动画对象1生成对应于该4个粒子元素的4个粒子元素对象11’、12’、13’和14’。在时刻t1遍历窗口动画共享池,其中只有窗口动画对象1处于生命周期中,则分别根据4个粒子元素对象11’、12’、13’和14’在时刻t1的属性信息绘制相应的图像11、12、13和14。在时刻t2遍历窗口动画共享池,仍然只有窗口动画对象1处于生命周期中,则分别根据4个粒子元素对象11’、12’、13’和14’在时刻t2的属性信息绘制相应的图像11、12、13和14。
响应于用户在时刻t3的收藏操作,在窗口动画共享池中生成与该收藏操作对应的窗口动画对象2,该窗口动画对象2的生命周期为T2,该窗口动画对象2包含3个粒子元素,每个粒子元素各自具有与时间相关的属性信息。基于该窗口动画对象2生成对应于该3个粒子元素的3个粒子元素对象21’、22’和23’。在时刻t3遍历窗口动画共享池,其中窗口动画对象1和窗口动画对象2均处于生命周期中,则分别根据窗口动画对象1的4个粒子元素对象11’、12’、13’和14’在时刻t3的属性信息绘制相应的图像11、12、13和14,以及分别根据窗口动画对象2的3个粒子元素对象21’、22’和23’在时刻t3的属性信息绘制相应的图像21、22和23。本例中,从时刻t1~时刻t3的粒子喷射动画效果可参阅图3A。
图3A示意性地示出了根据本发明一个实施例的粒子喷射动画的效果图。
如图3A所示,在时刻t1,输出界面上显示窗口动画对象1的4个粒子元素对象11’、12’、13’和14’在时刻t1的图像11、12、13和14。在时刻t2,客户端应用的界面上显示窗口动画对象1的4个粒子元素对象11’、12’、13’和14’在时刻t2的图像11、12、13和14。在时刻t3,输出界面上显示窗口动画对象1的4个粒子元素对象11’、12’、13’和14’在时刻t3的图像11、12、13和14,以及窗口动画对象2的3个粒子元素对象21’、22’和23’在时刻t3的图像21、22和23。
图3B示意性地示出了根据本发明一个实施例的窗口动画对象的生命周期的示意图。
如图3B所示,在窗口动画共享池中,窗口动画对象1的生命从时刻t1开始计算,延续至其生命周期T1结束,窗口动画对象2的生命从时刻t3开始计算,延续至其生命周期T2结束。本例中,窗口动画对象1和窗口动画对象2的生命周期部分重叠,依据本公开实施例的实现粒子喷射动画的方法,在非重叠的时间区间内在画布上绘制窗口动画对象1或窗口动画对象2的粒子元素对象的图像,在重叠的时间区间内在画布上同时绘制窗口动画对象1和窗口动画对象2的粒子元素对象的图像。
依据本公开的实施例,上述在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象可以包括:检查所述窗口动画共享池中是否存在生命周期已结束的窗口动画对象;如果是,则复用所述生命周期已结束的窗口动画对象,将所述生命周期已结束的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象;以及,如果否,则创建新的窗口动画对象,将所述新的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。
上述过程在窗口动画共享池中存在生命周期已结束但尚未被销毁的旧的窗口动画对象,可以对该旧的窗口动画对象进行复用,以生成新的窗口动画对象,无需再重新创建对象,减少内存资源的消耗。在复用旧的窗口动画对象时,重新定义该窗口动画对象的生命周期以及该窗口动画对象的粒子元素的数量和属性信息,使其初始化为与上述第一触发操作对应的窗口动画对象。
依据本公开的实施例,上述响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象可以包括如下两种情况:(1)响应于用户点击第一控件的操作,在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。以及,(2)响应于用户按压所述第一控件超过第一预定时长的操作,在第二预定时长内每隔第二预设时间在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。其中,第一预定时长和第二预定时长可以相同或不同。
沿用上文图3A~图3B所示的例子,当用户点击点赞按钮时,在窗口动画共享池中生成一个窗口动画对象1,在用户不进行其他操作的情况下,输出界面仅展示单一窗口动画对象1的粒子元素对象的图像随时间变化的效果。当用户按压该点赞按钮超过时长T时,则在时长T内每隔时间△t在窗口动画共享池中生成一个窗口动画对象1,在用户不进行其他操作的情况下,在时长T内输出界面展示窗口动画对象1随时间不断增加、且每个窗口动画对象1的粒子元素对象的图像随时间变化的效果。
依据本公开的实施例,上述为所述窗口动画对象生成一个或多个粒子元素对象包括:获取与所述一个或多个粒子元素对象对应的素材图片,其中,所述素材图片的存储管理基于最近最少使用(Least Recently Used,LRU)算法进行。LRU算法是一种缓存(cache)替换算法,常应用于缓存中的数据淘汰,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。由于素材图片占用内存较大,本方案使用LRU算法对与粒子元素对象对应的素材图片进行内存缓存,提高素材图片的获取效率。
依据本公开的实施例,窗口动画对象所包含的每个粒子元素的属性信息包括:每个粒子元素的属性信息与时间的对应关系。上述基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像包括:对于该窗口动画对象所包含的每个粒子元素,基于该粒子元素的属性信息与时间的对应关系,计算与该粒子元素所对应的粒子元素对象在该窗口动画对象的当前生命时刻的属性值,以及,基于所计算的属性值,在画布上绘制该粒子元素对象在该窗口动画对象的当前生命时刻的图像。
沿用上文图3A~图3B所示的例子,对于窗口动画对象1来说,其所包含的粒子元素对象11’的位置信息为(x(t),y(t)),窗口动画对象1的生成时刻为时刻t1,生命周期为T1。在时刻t1,粒子元素对象11’的位置属性值为(x(0),y(0)),对应于粒子元素的初始位置,则将图像11绘制于画布的位置(x(0),y(0))处。在时刻t2,粒子元素对象11’的位置属性值为(x(t2-t1),y(t2-t1)),则将图像11绘制于画布的位置(x(t2-t1),y(t2-t1))处。在时刻t3,粒子元素对象11’的位置属性值为(x(t3-t1),y(t3-t1)),则将图像11绘制于画布的位置(x(t3-t1),y(t3-t1))处。
具体地,作为一个可选的实施例,每个粒子元素的属性信息包括如下至少一种:该粒子元素的时长、该粒子元素的类型、该粒子元素的延时时长、该粒子元素的初始坐标、该粒子元素的初始速度、该粒子元素的初始颜色、该粒子元素的初始透明度、该粒子元素的初始缩放比例、该粒子元素的初始旋转程度、该粒子元素的运动轨迹、该粒子元素的速度与时间的对应关系、该粒子元素的颜色与时间的对应关系、该粒子元素的透明度与时间的对应关系、该粒子元素的缩放比例与时间的对应关系、以及该粒子元素的旋转程度与时间的对应关系。其中,粒子元素的类型可以按照不同属性信息进行分类,如按照不同的运动轨迹进行分类,分为抛物线粒子元素、直线粒子元素等,或按照不同的形状进行分类,分为圆形粒子元素、方形粒子元素等,或按照不同的颜色进行分类等等,在此不做限制。
下面参考图3C,结合具体实施例对根据本公开实施例的实现粒子喷射动画的方法进一步说明。
图3C示意性地示出了根据本发明一个实施例的实现粒子喷射动画的架构图。
如图3C所示,本例应用于安卓(Android)系统,用于实现粒子喷射动画的架构分为两层,分别是动作响应层和动画渲染层。其中动作响应层主要是接收用户的触发操作,对用户的单击、长按等触发操作事件进行分类,并向动画渲染层发起具体的动画执行指令。而动画渲染层是实现粒子喷射动画的核心,其中包含了窗口动画共享池、粒子素材提供器、粒子元素生成器。
窗口动画共享池用来管理窗口动画的生命周期,其中维护着生命周期未结束的处于正在执行中状态的窗口动画对象的集合和生命周期已结束的处于执行完成状态的窗口动画对象的集合。执行完成的窗口动画对象可以用来复用生成新的窗口动画对象,以减少内存资源的消耗。窗口动画共享池中的正在执行中的窗口动画对象可以在需要时被获取并使用。
粒子素材提供器用来管理粒子喷射动画中的粒子元素对象的素材,为粒子元素生成器提供生成粒子元素对象所必需的素材。粒子素材提供器内部使用LRU算法对素材图片进行内存缓存,可以提升素材再次获取的效率。此外,粒子素材提供器还可以通过对同一粒子元素对象的不同时间的素材的变换来实现粒子元素对象的日夜间不同效果,同时支持动态获取粒子元素对象的素材。
粒子元素生成器主要为窗口动画生成粒子元素对象。粒子元素生成器会根据不同的类型属性值,生成不同类型的粒子元素对象,并可以依照粒子元素的初始属性信息来指定粒子元素对象在初始时间之后的后续各绘制时间对应的属性信息。
则如图3C所示,基于上述架构,实现粒子喷射动画的过程包括:
动作响应层响应于用户执行触发粒子喷射动画的第一触发操作,向动画渲染层发送与第一触发操作对应的喷射动画命令。其中,动作响应层可以通过发送延时任务来区分该第一触发操作是点击操作还是长按操作,当延时任务的延时时长不大于第一预定时长时为点击操作,当延时任务的延时时长大于第一预定时长时为长按操作。点击操作只触发一次与该第一触发操作所对应的粒子喷射动画,长按操作会每隔固定时间触发一次与该第一触发操作所对应的粒子喷射动画直到该第一触发操作不再持续。
动画渲染层接收动作响应层发送的喷射动画命令,开始从窗口动画共享池中根据喷射动画命令中指定的动画类型获取相应的窗口动画对象,包括复用旧的已执行完成的窗口动画对象或构建新的窗口动画对象。动画渲染层在获取到窗口动画对象之后为该窗口动画对象设置一些参数,以将获取到的窗口动画对象初始化为与第一触发操作对应的窗口动画对象。例如:窗口动画对象的生命周期和窗口动画对象中粒子元素的个数、类型、时长、初始坐标、随机的速度范围,随机的初始速度范围等属性信息。
接着,动画渲染层开始进行粒子喷射动画的准备工作。具体地,粒子元素生成器通过上述为窗口动画对象设置的参数,为窗口动画对象生成指定个数的粒子元素对象。以及,随机从粒子素材提供器中获取粒子素材位图作为粒子元素对象的显示图层。至此,粒子喷射动画的准备工作已经完成。
然后,使用子线程的Handler类(Android系统用于处理异步消息的核心类)开启绘制动画的循环任务,每隔固定的时间(动画的刷新频率)去检查窗口动画共享池中是否存在正在执行的窗口动画对象,如果存在则通知动画渲染层中的SurfaceView类(Android系统用于绘制的类)去绘制所有现存窗口动画对象的粒子元素对象,直至所有的窗口动画对象被销毁,表明动画结束。
绘制过程中,每个窗口动画对象会遍历计算其内部的粒子元素对象在绘制时刻的坐标、透明度、缩放等属性,然后通过Matrix类(Android系统用于进行图片变换处理的类)对粒子元素对象的位图做相应的变化,最终在画布(canvas)上绘制出变化后的图形。不断的接收来自子线程的Handler类发起绘制任务,不断的绘制就形成了动画。
以及,绘制过程中具体的计算粒子元素对象的属性值的方法是根据当前该窗口动画对象的执行时间(从窗口动画对象的生成时间到当前时间)、每个粒子元素对象的动画时长以及粒子元素的延时时长,计算出对应粒子元素对象的动画进度,然后利用该粒子元素对象的运动轨迹、缩放、透明度变化随动画进度的变化规则来计算当前时刻的相应的坐标、缩放比例和透明度等属性值。
上述实施例基于Android系统设计了一种实现粒子喷射动画的方案,简化了现有技术中粒子喷射动画的实现逻辑,方便开发者使用简单的API(Application ProgrammingInterface,应用程序编程接口)创建粒子喷射动画,极大的提升了此类动画的开发效率。此外整个动画的显示渲染层使用SurfaceView类实现,保证可以在子线程中进行绘制窗口动画中的粒子元素对象,避免了大量粒子喷射动画执行对于UI(User Interface,用户界面)线程的压力而导致的对于用户触发操作的ARN(Application Not Responding,应用无响应)。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的、用于实现粒子喷射动画的实现装置进行详细阐述。
图4示意性地示出了根据本发明一个实施例的粒子喷射动画的实现装置的框图。如图4所示,该粒子喷射动画的实现装置400包括:动作响应模块410、粒子素材生成模块420、以及绘制模块430。
动作响应模块410用于响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象。
其中,所述窗口动画对象包括:所述窗口动画对象的生命周期、所述窗口动画对象所包含的粒子元素的数量、和每个粒子元素的属性信息。
粒子素材生成模块420用于基于所述窗口动画对象所包含的粒子元素的数量,为所述窗口动画对象生成一个或多个粒子元素对象。
绘制模块430用于每隔第一预设时间遍历所述窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。
图5示意性地示出了根据本发明另一个实施例的粒子喷射动画的实现装置的框图。如图5所示,该粒子喷射动画的实现装置500包括:动作响应模块510、粒子素材生成模块520、以及绘制模块530。其中,动作响应模块510、粒子素材生成模块520和绘制模块530分别可以执行与动作响应模块410、粒子素材生成模块420和绘制模块430对应相同的操作,重复的部分在此不再赘述。
在本发明的一个实施例中,动作响应模块510包括:检查子模块511、复用子模块512、以及创建子模块513。
检查子模块511用于检查所述窗口动画共享池中是否存在生命周期已结束的窗口动画对象。复用子模块512用于当存在生命周期已结束的窗口动画对象时,复用所述生命周期已结束的窗口动画对象,将所述生命周期已结束的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。以及,创建子模块513用于当不存在生命周期已结束的窗口动画对象时,创建新的窗口动画对象,将所述新的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。
在本发明的另一实施例中,所述动作响应模块510包括:第一生成子模块514和第二生成子模块515。
第一生成子模块514用于响应于用户点击第一控件的操作,在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。以及,第二生成子模块515用于响应于用户按压所述第一控件超过第一预定时长的操作,在第二预定时长内每隔第二预设时间在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。
在本发明的又一实施例中,粒子素材生成模块520包括素材图片获取子模块521,用于获取与所述一个或多个粒子元素对象对应的素材图片,其中,所述素材图片的存储管理基于最近最少使用算法进行。
在本发明的再一实施例中,每个粒子元素的属性信息包括每个粒子元素的属性信息与时间的对应关系。
绘制模块530包括:计算子模块531和绘制子模块532。计算子模块531用于对于该窗口动画对象所包含的每个粒子元素,基于该粒子元素的属性信息与时间的对应关系,计算与该粒子元素所对应的粒子元素对象在该窗口动画对象的当前生命时刻的属性值。以及,绘制子模块532用于基于所计算的属性值,在画布上绘制该粒子元素对象在该窗口动画对象的当前生命时刻的图像。
在本发明的再一实施例中,每个粒子元素的属性信息包括如下至少一种:该粒子元素的时长、该粒子元素的类型、该粒子元素的延时时长、该粒子元素的初始坐标、该粒子元素的初始速度、该粒子元素的初始颜色、该粒子元素的初始透明度、该粒子元素的初始缩放比例、该粒子元素的初始旋转程度、该粒子元素的运动轨迹、该粒子元素的速度与时间的对应关系、该粒子元素的颜色与时间的对应关系、该粒子元素的透明度与时间的对应关系、该粒子元素的缩放比例与时间的对应关系、以及该粒子元素的旋转程度与时间的对应关系。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,对本发明示例性实施方式的用于实现粒子喷射动画的实现方法的介质进行介绍。
本发明实施例提供了一种介质,存储有计算机可执行指令,上述指令在被处理器执行时用于实现上述方法实施例中任一项所述的粒子喷射动画的实现方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的粒子喷射动画的实现方法中的操作,例如,所述计算设备可以执行如图2中所示的操作S201~S203。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图,如图6所示,描述了根据本发明的实施方式的用于实现粒子喷射动画的实现方法的程序产品60,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,介绍根据本发明的另一示例性实施方式的、用于实现粒子喷射动画的实现方法的计算设备。
本发明实施例还提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现上述方法实施例中任一项所述的粒子喷射动画的实现方法。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的用于实现粒子喷射动画的实现方法的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的粒子喷射动画的实现方法中的操作。例如,所述处理单元可以执行如图2中所示的操作S201~S203。
下面参照图7来描述根据本发明的这种实施方式的用于实现粒子喷射动画的实现方法的计算设备70。如图7所示的计算设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算设备70以通用计算设备的形式表现。计算设备70的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。
总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(ROM)7023。
存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备70也可以与一个或多个外部设备704(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备70交互的设备通信,和/或与使得计算设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/0)接口705进行。并且,计算设备70还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与计算设备70的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了粒子喷射动画的实现装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (14)
1.一种粒子喷射动画的实现方法,包括:
响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象,其中,所述窗口动画对象包括:所述窗口动画对象的生命周期、所述窗口动画对象所包含的粒子元素的数量和每个粒子元素的属性信息,每个粒子元素的属性信息与时间相关;
基于所述窗口动画对象所包含的粒子元素的数量,为所述窗口动画对象生成一个或多个粒子元素对象;以及
每隔第一预设时间遍历所述窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。
2.根据权利要求1所述的方法,其中,所述在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象包括:
检查所述窗口动画共享池中是否存在生命周期已结束的窗口动画对象;
如果是,则复用所述生命周期已结束的窗口动画对象,将所述生命周期已结束的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象;以及
如果否,则创建新的窗口动画对象,将所述新的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。
3.根据权利要求1所述的方法,其中,所述响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象包括:
响应于用户点击第一控件的操作,在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象;以及
响应于用户按压所述第一控件超过第一预定时长的操作,在第二预定时长内每隔第二预设时间在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。
4.根据权利要求1所述的方法,其中,所述为所述窗口动画对象生成一个或多个粒子元素对象包括:
获取与所述一个或多个粒子元素对象对应的素材图片,其中,所述素材图片的存储管理基于最近最少使用算法进行。
5.根据权利要求1所述的方法,其中:
每个粒子元素的属性信息包括:每个粒子元素的属性信息与时间的对应关系;
所述基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像包括:
对于该窗口动画对象所包含的每个粒子元素,基于该粒子元素的属性信息与时间的对应关系,计算与该粒子元素所对应的粒子元素对象在该窗口动画对象的当前生命时刻的属性值;以及
基于所计算的属性值,在画布上绘制该粒子元素对象在该窗口动画对象的当前生命时刻的图像。
6.根据权利要求1所述的方法,其中,每个粒子元素的属性信息包括如下至少一种:该粒子元素的时长、该粒子元素的类型、该粒子元素的延时时长、该粒子元素的初始坐标、该粒子元素的初始速度、该粒子元素的初始颜色、该粒子元素的初始透明度、该粒子元素的初始缩放比例、该粒子元素的初始旋转程度、该粒子元素的运动轨迹、该粒子元素的速度与时间的对应关系、该粒子元素的颜色与时间的对应关系、该粒子元素的透明度与时间的对应关系、该粒子元素的缩放比例与时间的对应关系、以及该粒子元素的旋转程度与时间的对应关系。
7.一种粒子喷射动画的实现装置,包括:
动作响应模块,用于响应于用户的第一触发操作,在窗口动画共享池中生成与所述第一触发操作对应的窗口动画对象,其中,所述窗口动画对象包括:所述窗口动画对象的生命周期、所述窗口动画对象所包含的粒子元素的数量和每个粒子元素的属性信息,每个粒子元素的属性信息与时间相关;
粒子素材生成模块,用于基于所述窗口动画对象所包含的粒子元素的数量,为所述窗口动画对象生成一个或多个粒子元素对象;以及
绘制模块,用于每隔第一预设时间遍历所述窗口动画共享池,对于生命周期未结束的每个窗口动画对象,基于该窗口动画对象所包含的粒子元素的属性信息,在画布上重新绘制与该窗口动画对象对应的一个或多个粒子元素对象在当前时刻的图像。
8.根据权利要求7所述的装置,其中,所述动作响应模块包括:
检查子模块,用于检查所述窗口动画共享池中是否存在生命周期已结束的窗口动画对象;
复用子模块,用于当存在生命周期已结束的窗口动画对象时,复用所述生命周期已结束的窗口动画对象,将所述生命周期已结束的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象;以及
创建子模块,用于当不存在生命周期已结束的窗口动画对象时,创建新的窗口动画对象,将所述新的窗口动画对象初始化为与所述第一触发操作对应的窗口动画对象。
9.根据权利要求7所述的装置,其中,所述动作响应模块包括:
第一生成子模块,用于响应于用户点击第一控件的操作,在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象;以及
第二生成子模块,用于响应于用户按压所述第一控件超过第一预定时长的操作,在第二预定时长内每隔第二预设时间在所述窗口动画共享池中生成一个与所述第一控件对应的窗口动画对象。
10.根据权利要求7所述的装置,其中,所述粒子素材生成模块包括:
素材图片获取子模块,用于获取与所述一个或多个粒子元素对象对应的素材图片,其中,所述素材图片的存储管理基于最近最少使用算法进行。
11.根据权利要求7所述的装置,其中:
每个粒子元素的属性信息包括:每个粒子元素的属性信息与时间的对应关系;
所述绘制模块包括:
计算子模块,用于对于该窗口动画对象所包含的每个粒子元素,基于该粒子元素的属性信息与时间的对应关系,计算与该粒子元素所对应的粒子元素对象在该窗口动画对象的当前生命时刻的属性值;以及
绘制子模块,用于基于所计算的属性值,在画布上绘制该粒子元素对象在该窗口动画对象的当前生命时刻的图像。
12.根据权利要求7所述的装置,其中,每个粒子元素的属性信息包括如下至少一种:该粒子元素的时长、该粒子元素的类型、该粒子元素的延时时长、该粒子元素的初始坐标、该粒子元素的初始速度、该粒子元素的初始颜色、该粒子元素的初始透明度、该粒子元素的初始缩放比例、该粒子元素的初始旋转程度、该粒子元素的运动轨迹、该粒子元素的速度与时间的对应关系、该粒子元素的颜色与时间的对应关系、该粒子元素的透明度与时间的对应关系、该粒子元素的缩放比例与时间的对应关系、以及该粒子元素的旋转程度与时间的对应关系。
13.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被处理器执行时用于实现:
如权利要求1至6中任一项所述的粒子喷射动画的实现方法。
14.一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现:
如权利要求1至6中任一项所述的粒子喷射动画的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910255682.3A CN110007983B (zh) | 2019-03-29 | 2019-03-29 | 粒子喷射动画的实现方法、介质、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910255682.3A CN110007983B (zh) | 2019-03-29 | 2019-03-29 | 粒子喷射动画的实现方法、介质、装置和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110007983A CN110007983A (zh) | 2019-07-12 |
CN110007983B true CN110007983B (zh) | 2022-06-07 |
Family
ID=67169309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910255682.3A Active CN110007983B (zh) | 2019-03-29 | 2019-03-29 | 粒子喷射动画的实现方法、介质、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110007983B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110415326A (zh) * | 2019-07-18 | 2019-11-05 | 成都品果科技有限公司 | 一种粒子效果的实现方法及装置 |
CN112925593A (zh) * | 2019-12-05 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 一种目标图层缩放旋转的方法和装置 |
CN111124579B (zh) * | 2019-12-24 | 2023-12-19 | 北京金山安全软件有限公司 | 一种特效渲染方法、装置、电子设备及存储介质 |
CN111625170B (zh) * | 2020-06-15 | 2022-09-30 | 北京达佳互联信息技术有限公司 | 一种动画显示方法、电子设备和存储介质 |
CN112612569B (zh) * | 2020-12-29 | 2022-09-30 | 杭州趣链科技有限公司 | 页面动画显示方法、装置、设备及存储介质 |
CN113689528A (zh) * | 2021-07-13 | 2021-11-23 | 稿定(厦门)科技有限公司 | 一种可视化值动画的gui交互显示方法 |
CN114167991B (zh) * | 2021-12-13 | 2023-08-29 | Oppo广东移动通信有限公司 | 控件显示方法、装置、电子设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246739B (zh) * | 2013-05-16 | 2017-02-08 | 百度在线网络技术(北京)有限公司 | 多WebView的网页浏览控制方法及浏览器 |
CN104850389B (zh) * | 2014-02-14 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 动态界面的实现方法及装置 |
US9600188B2 (en) * | 2014-04-02 | 2017-03-21 | International Business Machines Corporation | Collision avoidance using dynamic target volume allocation from a shared resource pool |
CN105117004A (zh) * | 2015-08-13 | 2015-12-02 | 小米科技有限责任公司 | 展现设备工作状态的方法和装置 |
CN106708498A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 一种实现多模式应用页面的终端、方法及系统 |
-
2019
- 2019-03-29 CN CN201910255682.3A patent/CN110007983B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110007983A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110007983B (zh) | 粒子喷射动画的实现方法、介质、装置和计算设备 | |
JP6033854B2 (ja) | 大域的コンポジションシステム | |
US7423653B2 (en) | Displaying graphical textures | |
US20150220496A1 (en) | Dynamic sprite based theme switching | |
CN107479990A (zh) | 一种分布式软件服务系统 | |
JP7345551B2 (ja) | ヒューマンコンピュータインタラクションの制御方法、装置、システム、及び電子機器 | |
US11567628B2 (en) | Cognitive composition of multi-dimensional icons | |
CN110516179A (zh) | 图形渲染方法、装置、电子设备及存储介质 | |
CN105190701A (zh) | 基于原语的合成 | |
CN102449604B (zh) | 虚拟桌面中分布处理的方法和系统 | |
WO2014204502A1 (en) | Synchronization points for state information | |
CN108369538A (zh) | 下载视觉资产 | |
CN115330916A (zh) | 绘制动画生成方法、装置、设备、可读存储介质及产品 | |
CN113688341B (zh) | 动态图片分解方法、装置、电子设备及可读存储介质 | |
CN110489023A (zh) | 多窗口显示的实现方法、装置、设备、介质和系统 | |
US11543945B1 (en) | Accurate local depiction of preview of a program window included in a remote graphical desktop | |
CN112684965A (zh) | 动态壁纸状态变更方法、装置、电子设备及存储介质 | |
CN111857902A (zh) | 应用的显示方法、装置、设备和可读存储介质 | |
WO2005122096A1 (en) | Displaying graphical textures | |
CN107506176A (zh) | 一种确定解码任务的方法和装置 | |
CN105164723A (zh) | 共享合成资源 | |
CN114090188A (zh) | 基于安卓系统虚拟化的实现独立多用户系统的方法及应用 | |
CN114202608A (zh) | 图像渲染的方法、装置、设备、介质和程序产品 | |
CN113763552A (zh) | 三维地理模型的展示方法、装置、计算机设备和存储介质 | |
CN105159647A (zh) | 屏幕刷新方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |