欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

2d游戲的動畫實現(xiàn)方法和系統(tǒng)的制作方法

文檔序號:9912192閱讀:1047來源:國知局
2d游戲的動畫實現(xiàn)方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及動畫實現(xiàn)技術(shù)領(lǐng)域,特別涉及一種2D游戲的動畫實現(xiàn)方法和系統(tǒng)。
【背景技術(shù)】
[0002]在2D游戲中,現(xiàn)有最常見的方式是采用序列幀方式實現(xiàn)一個動畫在游戲中的表現(xiàn),也即同舊式電影那樣用連續(xù)的靜態(tài)圖片進行快速切換形成動畫。因此,這樣會導(dǎo)致完成一個動畫的播放需要多副圖片,且大量的幀會導(dǎo)致一個動畫總體需要占用較多的內(nèi)存;特別是在手游環(huán)境中,當(dāng)前可以使用的內(nèi)存一般不會很多,如果再應(yīng)用大量的序列幀實現(xiàn)動畫表現(xiàn)則導(dǎo)致內(nèi)存空間大大減小,容易發(fā)生游戲頻繁閃退的現(xiàn)象。
[0003]同時,利用序列幀實現(xiàn)動畫的表現(xiàn)還有個明顯的缺陷一一圖片復(fù)用率低。比如,有兩個比較類似的動畫,其中僅有幾處的細節(jié)不同,但是通過序列幀表現(xiàn)方式還是需要利用兩套圖片資源,占用兩倍內(nèi)存,由此進一步導(dǎo)致圖片具有較多無謂的占用內(nèi)存和浪費。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的是為了解決上述現(xiàn)有技術(shù)的缺點和不足,提供一種2D游戲的動畫實現(xiàn)方法和系統(tǒng),有效避免了現(xiàn)有采用序列幀方式實現(xiàn)動畫表現(xiàn)所引起的內(nèi)存空間占用大、游戲容易發(fā)生閃退及圖片復(fù)用率小等現(xiàn)象的發(fā)生。
[0005]為解決上述問題,本發(fā)明提供了一種2D游戲的動畫實現(xiàn)方法,其包括以下步驟:
[0006]獲取并保存不需要移動的固定對象及需要移動的運動對象;
[0007]根據(jù)動畫需要設(shè)定運動對象于固定對象中的初始位置、運動動作和終止位置,生成動作描述文件;
[0008]通過游戲引擎讀取動作描述文件,創(chuàng)建并控制運動對象的動作;
[0009]運動對象執(zhí)行動作,完成動畫。
[0010]通過上述技術(shù)方案,本發(fā)明通過將一個構(gòu)成一個動畫的對象分為不移動的固定對象(如建筑背景)和一個需要運動以達到動畫效果的運動對象,并通過對創(chuàng)建并控制運動對象在固定對象中的移動切位等運動,即可實現(xiàn)動畫的創(chuàng)建和完成,由此將圖片(固定對象)和粒子(運動對象)作為部件組裝起來,通過配置相應(yīng)的動作即可推動動畫的播放。則對于相似的動畫,只需要修改有差異的部件即可推送新的動畫的播放,由此大大減少了圖片對內(nèi)存空間的占用,同時也大大提高了圖片的重復(fù)使用性。因此,本發(fā)明2D游戲的動畫實現(xiàn)方法有效避免了現(xiàn)有采用序列幀方式實現(xiàn)動畫表現(xiàn)所引起的內(nèi)存空間占用大、游戲容易發(fā)生閃退及圖片復(fù)用率小等現(xiàn)象的發(fā)生。
[0011 ]作為本發(fā)明的進一步改進,所述描述文件為python字典,且游戲引擎根據(jù)所述描述文件轉(zhuǎn)化得到相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并通過路徑法和描述法的方式創(chuàng)建新的運動對象及運動對象的動作。通過將描述文件定位為python字典格式,豐富了描述文件的信息和降低了對復(fù)雜度較高的動畫的實現(xiàn)難度;同時也使得游戲引擎能夠根據(jù)描述文件轉(zhuǎn)化得到相應(yīng)的數(shù)據(jù)結(jié)構(gòu),實現(xiàn)游戲引擎可以通過路徑和方法描述來創(chuàng)建對象(如游戲中的精靈)和動作,提高動畫創(chuàng)建效率。
[0012]作為本發(fā)明的進一步改進,完成動畫后,還包括步驟:將由游戲引擎轉(zhuǎn)化得到的數(shù)據(jù)結(jié)構(gòu)緩存至一全局字典中。通過此處的方法步驟,解決了由于在手游環(huán)境下的文件讀取速度和CPU的執(zhí)行能力都有一定的欠缺的情況下因重復(fù)讀取文件而造成的動畫創(chuàng)建效率低和內(nèi)存空間的進一步占用等問題,從而使得需要加載相同的動畫時,直接從全局字典這一緩存中獲取即可,避免了重復(fù)讀取文件的操作。
[0013]作為本發(fā)明的進一步改進,當(dāng)需要再次加載相同的動畫時,從全局字典中直接獲取相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并根據(jù)該數(shù)據(jù)結(jié)構(gòu)對運動對象的動作實現(xiàn)再次控制,使運動對象執(zhí)行相應(yīng)的動作,完成動畫。通過該步驟,使得需要加載相同的動畫時,直接從全局字典這一緩存中獲取即可,避免了重復(fù)讀取文件的操作,進一步減少內(nèi)存的占用和提高動畫創(chuàng)建效率。
[0014]作為本發(fā)明的進一步改進,當(dāng)需要將當(dāng)前動畫切換為新的動畫時,包括以下步驟:
[0015]回收構(gòu)成當(dāng)前動畫的固定對象和運動對象;
[0016]從回收到的固定對象和運動對象中抽取新的動畫中需要的對象;
[0017]通過游戲引擎讀取動作描述文件,創(chuàng)建并控制所抽取的對象的動作;
[0018]動作對象執(zhí)行動作,新的動畫創(chuàng)建完成。
[0019]由于在用戶顯示動畫時,動畫的切換時較為頻繁的,比如游戲中的炮臺攻擊動作所涉及的動畫切換播放需要頻繁的進行“鎖定目標動畫—攻擊動畫—鎖定目標動畫—攻擊動畫”等切換,如果是通過現(xiàn)有技術(shù)中的序列幀方式實現(xiàn)上述動畫的切換,則上述動畫所涉及到的圖片全部都需要重新創(chuàng)建,從而導(dǎo)致CPU的運算進一步增大,進一步加重游戲的閃退現(xiàn)象發(fā)生和耗費時間;故為解決該問題,本發(fā)明的上述將當(dāng)前動畫切換至新的動畫的方法步驟在切換動畫時,先對圖片對象(固定對象和運動對象)進行回收,以在創(chuàng)建新的動畫時,直接從回收到的對象獲取,而不需要創(chuàng)建新的對象,由此節(jié)省了動畫創(chuàng)建時間,提高動畫創(chuàng)建效率,同時也減輕了 CPU的負擔(dān),進一步避免游戲發(fā)生閃退現(xiàn)象。
[0020]作為本發(fā)明的進一步改進,所述運動對象的動作包括移動或旋轉(zhuǎn)或縮放或移動、旋轉(zhuǎn)和縮放的結(jié)合。
[0021]相應(yīng)地,本發(fā)明還提供了一種用于實現(xiàn)上述2D游戲的動畫實現(xiàn)方法的2D游戲的動畫實現(xiàn)系統(tǒng),該2D游戲的動畫實現(xiàn)系統(tǒng)包括:
[0022]對象獲取模塊,用于獲取并保存不需要移動的固定對象及需要移動的運動對象;
[0023]描述文件模塊,用于根據(jù)動畫需要設(shè)定運動對象于固定對象中的初始位置、運動動作和終止位置,生成動作描述文件;
[0024]游戲引擎模塊,用于讀取所述描述文件,創(chuàng)建運動對象的動作;
[0025]控制模塊,用于根據(jù)所述游戲引擎模塊控制運動對象的動作;
[0026]動畫播放模塊,用于根據(jù)控制模塊播放運動對象的執(zhí)行動作,完成動畫。
[0027]作為本發(fā)明的進一步改進,所述描述文件為python字典,且所述游戲引擎模塊根據(jù)所述描述文件轉(zhuǎn)化得到相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并通過路徑法和描述法的方式創(chuàng)建新的運動對象及運動對象的動作。
[0028]作為本發(fā)明的進一步改進,所述描述文件模塊還用于在動畫播放模塊完成動畫播放后,將游戲引擎轉(zhuǎn)化得到的數(shù)據(jù)結(jié)構(gòu)緩存至一全局字典子模塊中;以及所述控制模塊還用于當(dāng)需要再次加載相同的動畫時,從全局字典子模塊中直接獲取相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并根據(jù)該數(shù)據(jù)結(jié)構(gòu)對運動對象的動作實現(xiàn)再次控制,使運動對象執(zhí)行相應(yīng)的動作,完成動畫。
[0029]作為本發(fā)明的進一步改進,本發(fā)明的2D游戲的動畫實現(xiàn)系統(tǒng)還包括動畫切換模塊,用于將當(dāng)前動畫切換為新的動畫;所述動畫切換模塊包括對象回收子模塊和對象抽取子模塊;
[0030]所述對象回收子模塊,用于回收構(gòu)成當(dāng)前動畫的固定對象和運動對象;
[0031]所述對象抽取子模塊,用于從所述對象回收子模塊回收到的固定對象和運動對象中抽取新的動畫中需要的對象;
[0032]以及,
[0033]所述游戲引擎模塊還用于根據(jù)描述文件創(chuàng)建對象抽取子模塊中抽取得到的對象的動作;
[0034]所述控制模塊還用于根據(jù)游戲引擎模塊控制對象抽取子模塊中抽取得到的對象的動作;
[0035]所述動畫播放模塊還用于根據(jù)控制模塊播放對象抽取子模塊中抽取得到的對象的動作,新的動畫創(chuàng)建完成。
[0036]由于本發(fā)明的2D游戲的動畫實現(xiàn)方法具有以上技術(shù)效果,則能夠?qū)崿F(xiàn)本發(fā)明2D游戲的動畫實現(xiàn)方法的2D游戲的動畫實現(xiàn)系統(tǒng)也具有相同的技術(shù)效果。
[0037]為了更好地理解和實施,下面結(jié)合附圖詳細說明本發(fā)明。
【附圖說明】
[0038]圖1是本發(fā)明2D游戲的動畫實現(xiàn)方法的流程示意圖;
[0039]圖2是圖1中2D游戲的動畫實現(xiàn)方法進一步完善后的流程不意圖;
[0040]圖3是本發(fā)明2D游戲的動畫實現(xiàn)方法實現(xiàn)動畫的切換的流程示意圖;
[0041 ]圖4是本發(fā)明2D游戲的動畫實現(xiàn)系統(tǒng)的結(jié)構(gòu)框圖;
[0042]圖5是圖4中2D游戲的動畫實現(xiàn)系統(tǒng)進一步完善后的結(jié)構(gòu)框圖。
【具體實施方式】
[0043]為了解決現(xiàn)有技術(shù)中采用序列幀方式實現(xiàn)動畫表現(xiàn)所引起的內(nèi)存空間占用大、游戲容易發(fā)生閃退及圖片復(fù)用率小等現(xiàn)象的發(fā)生,本發(fā)明提供了一種2D游戲的動畫實現(xiàn)方法,以下,對該方法進行具體說明。
[0044]請參閱圖1,一種2D游戲的動畫實現(xiàn)方法,包括以下步驟:
[0045]步驟S1:獲取并保存不需要移動的固定對象及需要移動的運動對象;
[0046]步驟S2:根據(jù)動畫需要設(shè)定運動對象于固定對象中的初始位置、運動動作和終止位置,生成動作描述文件;
[0047]步驟S3:通過游戲引擎讀取動作描述文件,創(chuàng)建并控制運動對象的動作;在本實施例中,所述描述文件的作用是告訴游戲引擎這個動畫要顯示哪些對象(圖片或粒子),要在什么時候顯示,要怎么顯示(如在什么時刻旋轉(zhuǎn)、縮放和移位等)。
[0048I步驟S4:運動對象執(zhí)行動作,完成動畫。
[0049]以下,舉一例子對本發(fā)明的步驟SI?S4進行說明:
[0050]例如,現(xiàn)在需要創(chuàng)建的動畫具有一個運動的圖片對象A和一個固定的圖片對象B,則先獲取并保存該運動的圖片對象A和該固定的圖片對象B。如果動畫需要圖片對象A需要先靜止I秒,然后向右移動100個像素點,并且一邊移動一邊順時針旋轉(zhuǎn),并在第2秒的時候,到達坐標(0,100),并旋轉(zhuǎn)了 180°。在圖片對象A運動的期間,還有個粒子C在需要一直在坐標(50,50)處撒花。也即,根據(jù)圖片對象A和粒子C的動畫動作需要,生成的描述文件將為:[0051 ] A:Picture: file.png;Sequence(Place(0,0),DelayTime(I,0),Spawn (MoveTo(1.0,0,100),RotateTo(I.0,180));
[0052]B: Picture: file.png;
[0053]C:Particle:part.pii
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汕尾市| 汤阴县| 上杭县| 建始县| 宜州市| 临洮县| 广南县| 永新县| 德庆县| 察隅县| 瑞安市| 平邑县| 华宁县| 米林县| 河源市| 肥城市| 邓州市| 信丰县| 墨玉县| 巫山县| 祁连县| 济宁市| 宜川县| 昌平区| 宜丰县| 卢氏县| 扎赉特旗| 上饶市| 黄山市| 左权县| 定襄县| 延吉市| 青阳县| 乐清市| 承德市| 横峰县| 东乌珠穆沁旗| 吉木萨尔县| 东平县| 深水埗区| 湄潭县|