本发明专利技术涉及一种2D游戏的动画实现方法和系统,该方法包括以下步骤:获取并保存不需要移动的固定对象及需要移动的运动对象;根据动画需要设定运动对象于固定对象中的初始位置、运动动作和终止位置,生成动作描述文件;通过游戏引擎读取动作描述文件,创建并控制运动对象的动作;运动对象执行动作,完成动画。本发明专利技术通过将一个构成一个动画的对象分为不移动的固定对象(如建筑背景)和一个需要运动以达到动画效果的运动对象,由此将图片(固定对象)和粒子(运动对象)作为部件组装起来,通过配置相应的动作即可推动动画的播放,有效避免了现有采用序列帧方式实现动画表现所引起的内存空间占用大、游戏容易发生闪退及图片复用率小等现象的发生。
【技术实现步骤摘要】
本专利技术涉及动画实现
,特别涉及一种2D游戏的动画实现方法和系统。
技术介绍
在2D游戏中,现有最常见的方式是采用序列帧方式实现一个动画在游戏中的表现,也即同旧式电影那样用连续的静态图片进行快速切换形成动画。因此,这样会导致完成一个动画的播放需要多副图片,且大量的帧会导致一个动画总体需要占用较多的内存;特别是在手游环境中,当前可以使用的内存一般不会很多,如果再应用大量的序列帧实现动画表现则导致内存空间大大减小,容易发生游戏频繁闪退的现象。同时,利用序列帧实现动画的表现还有个明显的缺陷——图片复用率低。比如,有两个比较类似的动画,其中仅有几处的细节不同,但是通过序列帧表现方式还是需要利用两套图片资源,占用两倍内存,由此进一步导致图片具有较多无谓的占用内存和浪费。
技术实现思路
本专利技术的目的是为了解决上述现有技术的缺点和不足,提供一种2D游戏的动画实现方法和系统,有效避免了现有采用序列帧方式实现动画表现所引起的内存空间占用大、游戏容易发生闪退及图片复用率小等现象的发生。为解决上述问题,本专利技术提供了一种2D游戏的动画实现方法,其包括以下步骤:获取并保存不需要移动的固定对象及需要移动的运动对象;根据动画需要设定运动对象于固定对象中的初始位置、运动动作和终止位置,生成动作描述文件;通过游戏引擎读取动作描述文件,创建并控制运动对象的动作;运动对象执行动作,完成动画。通过上述技术方案,本专利技术通过将一个构成一个动画的对象分为不移动的固定对象(如建筑背景)和一个需要运动以达到动画效果的运动对象,并通过对创建并控制运动对象在固定对象中的移动切位等运动,即可实现动画的创建和完成,由此将图片(固定对象)和粒子(运动对象)作为部件组装起来,通过配置相应的动作即可推动动画的播放。则对于相似的动画,只需要修改有差异的部件即可推送新的动画的播放,由此大大减少了图片对内存空间的占用,同时也大大提高了图片的重复使用性。因此,本专利技术2D游戏的动画实现方法有效避免了现有采用序列帧方式实现动画表现所引起的内存空间占用大、游戏容易发生闪退及图片复用率小等现象的发生。作为本专利技术的进一步改进,所述描述文件为python字典,且游戏引擎根据所述描述文件转化得到相应的数据结构,并通过路径法和描述法的方式创建新的运动对象及运动对象的动作。通过将描述文件定位为python字典格式,丰富了描述文件的信息和降低了对复杂度较高的动画的实现难度;同时也使得游戏引擎能够根据描述文件转化得到相应的数据结构,实现游戏引擎可以通过路径和方法描述来创建对象(如游戏中的精灵)和动作,提高动画创建效率。作为本专利技术的进一步改进,完成动画后,还包括步骤:将由游戏引擎转化得到的数据结构缓存至一全局字典中。通过此处的方法步骤,解决了由于在手游环境下的文件读取速度和CPU的执行能力都有一定的欠缺的情况下因重复读取文件而造成的动画创建效率低和内存空间的进一步占用等问题,从而使得需要加载相同的动画时,直接从全局字典这一缓存中获取即可,避免了重复读取文件的操作。作为本专利技术的进一步改进,当需要再次加载相同的动画时,从全局字典中直接获取相应的数据结构,并根据该数据结构对运动对象的动作实现再次控制,使运动对象执行相应的动作,完成动画。通过该步骤,使得需要加载相同的动画时,直接从全局字典这一缓存中获取即可,避免了重复读取文件的操作,进一步减少内存的占用和提高动画创建效率。作为本专利技术的进一步改进,当需要将当前动画切换为新的动画时,包括以下步骤:回收构成当前动画的固定对象和运动对象;从回收到的固定对象和运动对象中抽取新的动画中需要的对象;通过游戏引擎读取动作描述文件,创建并控制所抽取的对象的动作;动作对象执行动作,新的动画创建完成。由于在用户显示动画时,动画的切换时较为频繁的,比如游戏中的炮台攻击动作所涉及的动画切换播放需要频繁的进行“锁定目标动画→攻击动画→锁定目标动画→攻击动画”等切换,如果是通过现有技术中的序列帧方式实现上述动画的切换,则上述动画所涉及到的图片全部都需要重新创建,从而导致CPU的运算进一步增大,进一步加重游戏的闪退现象发生和耗费时间;故为解决该问题,本专利技术的上述将当前动画切换至新的动画的方法步骤在切换动画时,先对图片对象(固定对象和运动对象)进行回收,以在创建新的动画时,直接从回收到的对象获取,而不需要创建新的对象,由此节省了动画创建时间,提高动画创建效率,同时也减轻了CPU的负担,进一步避免游戏发生闪退现象。作为本专利技术的进一步改进,所述运动对象的动作包括移动或旋转或缩放或移动、旋转和缩放的结合。相应地,本专利技术还提供了一种用于实现上述2D游戏的动画实现方法的2D游戏的动画实现系统,该2D游戏的动画实现系统包括:对象获取模块,用于获取并保存不需要移动的固定对象及需要移动的运动对象;描述文件模块,用于根据动画需要设定运动对象于固定对象中的初始位置、运动动作和终止位置,生成动作描述文件;游戏引擎模块,用于读取所述描述文件,创建运动对象的动作;控制模块,用于根据所述游戏引擎模块控制运动对象的动作;动画播放模块,用于根据控制模块播放运动对象的执行动作,完成动画。作为本专利技术的进一步改进,所述描述文件为python字典,且所述游戏引擎模块根据所述描述文件转化得到相应的数据结构,并通过路径法和描述法的方式创建新的运动对象及运动对象的动作。作为本专利技术的进一步改进,所述描述文件模块还用于在动画播放模块完成动画播放后,将游戏引擎转化得到的数据结构缓存至一全局字典子模块中;以及所述控制模块还用于当需要再次加载相同的动画时,从全局字典子模块中直接获取相应的数据结构,并根据该数据结构对运动对象的动作实现再次控制,使运动对象执行相应的动作,完成动画。作为本专利技术的进一步改进,本专利技术的2D游戏的动画实现系统还包括动画切换模块,用于将当前动画切换为新的动画;所述动画切换模块包括对象回收子模块和对象抽取子模块;所述对象回收子模块,用于回收构成当前动画的固定对象和运动对象;所述对象抽取子模块,用于从所述对象回收子模块回收到的固定对象和运动对象中抽取新的动画中需要的对象;以及,所述游戏引擎模块还用于根据描述文件创建对象抽取子模块中抽取得到的对象的动作;所述控制模块还用于根据游戏引擎模块控制对象抽取子模块中抽取得到的对象的动作;所述动画播放模块还用于根据控制模块播放对象抽取子模块中抽取得到的对象的动作,新的动画创建完成。由于本专利技术的2D游戏的动本文档来自技高网...
【技术保护点】
一种2D游戏的动画实现方法,其特征在于:包括以下步骤:获取并保存不需要移动的固定对象及需要移动的运动对象;根据动画需要设定运动对象于固定对象中的初始位置、运动动作和终止位置,生成动作描述文件;通过游戏引擎读取动作描述文件,创建并控制运动对象的动作;运动对象执行动作,完成动画。
【技术特征摘要】
1.一种2D游戏的动画实现方法,其特征在于:包括以下步骤:
获取并保存不需要移动的固定对象及需要移动的运动对象;
根据动画需要设定运动对象于固定对象中的初始位置、运动动作和终止位置,生成动作描
述文件;
通过游戏引擎读取动作描述文件,创建并控制运动对象的动作;
运动对象执行动作,完成动画。
2.根据权利要求1所述的方法,其特征在于:所述描述文件为python字典,且游戏引擎根
据所述描述文件转化得到相应的数据结构,并通过路径法和描述法的方式创建新的运动对象
及运动对象的动作。
3.根据权利要求2所述的方法,其特征在于:完成动画后,还包括步骤:将由游戏引擎转化
得到的数据结构缓存至一全局字典中。
4.根据权利要求3所述的方法,其特征在于:当需要再次加载相同的动画时,从全局字典中
直接获取相应的数据结构,并根据该数据结构对运动对象的动作实现再次控制,使运动对象
执行相应的动作,完成动画。
5.根据权利要求1所述的方法,其特征在于:当需要将当前动画切换为新的动画时,包括以
下步骤:
回收构成当前动画的固定对象和运动对象;
从回收到的固定对象和运动对象中抽取新的动画中需要的对象;
通过游戏引擎读取动作描述文件,创建并控制所抽取的对象的动作;
动作对象执行动作,新的动画创建完成。
6.根据权利要求1所述的方法,其特征在于:所述运动对象的动作包括移动或旋转或缩放或
移动、旋转和缩放的结合。
7.一种2D游戏的动画实现系统,其特征在于:包括
对象获取模块,用于获取并保存不需要移动的固定对象及需要移动的运动对象;
描述文件模块,用于根据动画需要设定运...
【专利技术属性】
技术研发人员:徐波,
申请(专利权)人:广州多益网络科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。