st;Sequence(Place (50,50));
[0054]之后,游戲引擎便讀取上述描述文件,創(chuàng)建出圖片對象A的動作,同時并創(chuàng)建出粒子C和粒子C的動作。隨后,圖片對象A、B和C執(zhí)行相應的動作,完成動畫。
[0055]為豐富描述文件的信息和降低對復雜度較高的動畫的實現(xiàn)難度,提高動畫創(chuàng)建效率,作為一種更優(yōu)的技術方案,所述描述文件為python字典,且游戲引擎根據所述描述文件轉化得到相應的數(shù)據結構,并通過路徑法和描述法的方式創(chuàng)建新的運動對象及運動對象的動作。
[0056]為解決由于在手游環(huán)境下的文件讀取速度和CPU的執(zhí)行能力都有一定的欠缺的情況下因重復讀取文件而造成的動畫創(chuàng)建效率低和內存空間的進一步占用等問題,避免重復讀取文件的操作,作為一種更優(yōu)的技術方案,請參閱圖2,完成動畫后,還包括步驟S5:將由游戲引擎轉化得到的數(shù)據結構緩存至一全局字典中。由此使得需要加載相同的動畫時,直接從全局字典這一緩存中獲取即可,避免了重復讀取文件的操作。
[0057]為進一步避免重復讀取文件的操作和減少內存的占用和提高動畫創(chuàng)建效率,作為一種更優(yōu)的技術方案,當需要再次加載相同的動畫時,從全局字典中直接獲取相應的數(shù)據結構,并根據該數(shù)據結構對運動對象的動作實現(xiàn)再次控制,使運動對象執(zhí)行相應的動作,完成動畫。
[0058]為解決現(xiàn)有技術采用序列幀的方式實現(xiàn)動畫切換而引起的CPU運算增大、加重游戲閃退現(xiàn)象發(fā)生及時間耗費長的問題一一比如游戲中的炮臺攻擊動作所涉及的動畫切換播放需要頻繁的進行“鎖定目標動畫—攻擊動畫—鎖定目標動畫—攻擊動畫”等切換,采用序列幀的方式實現(xiàn)動畫則上述動畫所涉及到的圖片全部都需要重新創(chuàng)建,從而導致CPU的運算進一步增大,進一步加重游戲的閃退現(xiàn)象發(fā)生和耗費時間;故為解決該問題,作為一種更優(yōu)的技術方案,請參閱圖3,當需要將當前動畫切換為新的動畫時,包括以下步驟:
[0059]步驟S61:回收構成當前動畫的固定對象和運動對象;
[0060]步驟S62:從回收到的固定對象和運動對象中抽取新的動畫中需要的對象;
[0061]步驟S63:通過游戲引擎讀取動作描述文件,創(chuàng)建并控制所抽取的對象的動作;
[0062]步驟S64:動作對象執(zhí)行動作,新的動畫創(chuàng)建完成。
[0063]在本實施例中,所述運動對象的動作包括移動或旋轉或縮放或移動、旋轉和縮放的結合。
[0064]請參閱圖4,相應地,本發(fā)明還提供了一種用于實現(xiàn)上述2D游戲的動畫實現(xiàn)方法的2D游戲的動畫實現(xiàn)系統(tǒng),該2D游戲的動畫實現(xiàn)系統(tǒng)包括對象獲取模塊1、描述文件模塊2、游戲引擎模塊3、控制模塊4和動畫播放模塊5。
[0065]所述對象獲取模塊I,用于獲取并保存不需要移動的固定對象及需要移動的運動對象;
[0066]所述描述文件模塊2,用于根據動畫需要設定運動對象于固定對象中的初始位置、運動動作和終止位置,生成動作描述文件;
[0067]所述游戲引擎模塊3,用于讀取所述描述文件,創(chuàng)建運動對象的動作;
[0068]所述控制模塊4,用于根據所述游戲引擎模塊3控制運動對象的動作;
[0069]所述動畫播放模塊5,用于根據控制模塊4播放運動對象的執(zhí)行動作,完成動畫。
[0070]作為一種更優(yōu)的技術方案,所述描述文件為python字典,且所述游戲引擎模塊3根據所述描述文件轉化得到相應的數(shù)據結構,并通過路徑法和描述法的方式創(chuàng)建新的運動對象及運動對象的動作。
[0071]作為一種更優(yōu)的技術方案,所述描述文件模塊2還用于在動畫播放模塊5完成動畫播放后,將游戲引擎轉化得到的數(shù)據結構緩存至一全局字典子模塊中;以及所述控制模塊4還用于當需要再次加載相同的動畫時,從全局字典子模塊中直接獲取相應的數(shù)據結構,并根據該數(shù)據結構對運動對象的動作實現(xiàn)再次控制,使運動對象執(zhí)行相應的動作,完成動畫。
[0072]請參閱圖5,作為一種更優(yōu)的技術方案,本發(fā)明的2D游戲的動畫實現(xiàn)系統(tǒng)還包括動畫切換模塊6,用于將當前動畫切換為新的動畫;所述動畫切換模塊6包括對象回收子模塊61和對象抽取子模塊62;
[0073]所述對象回收子模塊61,用于回收構成當前動畫的固定對象和運動對象;
[0074]所述對象抽取子模塊62,用于從所述對象回收子模塊61回收到的固定對象和運動對象中抽取新的動畫中需要的對象;
[0075]以及,
[0076]所述游戲引擎模塊3還用于根據描述文件創(chuàng)建對象抽取子模塊62中抽取得到的對象的動作;
[0077]所述控制模塊4還用于根據游戲引擎模塊3控制對象抽取子模塊62中抽取得到的對象的動作;
[0078]所述動畫播放模塊5還用于根據控制模塊4播放對象抽取子模塊62中抽取得到的對象的動作,新的動畫創(chuàng)建完成。
[0079]相對于現(xiàn)有技術,本發(fā)明通過將一個構成一個動畫的對象分為不移動的固定對象(如建筑背景)和一個需要運動以達到動畫效果的運動對象,并通過對創(chuàng)建并控制運動對象在固定對象中的移動切位等運動,即可實現(xiàn)動畫的創(chuàng)建和完成,由此將圖片(固定對象)和粒子(運動對象)作為部件組裝起來,通過配置相應的動作即可推動動畫的播放。則對于相似的動畫,只需要修改有差異的部件即可推送新的動畫的播放,由此大大減少了圖片對內存空間的占用,同時也大大提高了圖片的重復使用性。因此,本發(fā)明2D游戲的動畫實現(xiàn)方法有效地避免了現(xiàn)有采用序列幀方式實現(xiàn)動畫表現(xiàn)所引起的內存空間占用大、游戲容易發(fā)生閃退及圖片復用率小等現(xiàn)象的發(fā)生。
[0080]本發(fā)明并不局限于上述實施方式,如果對本發(fā)明的各種改動或變形不脫離本發(fā)明的精神和范圍,倘若這些改動和變形屬于本發(fā)明的權利要求和等同技術范圍之內,則本發(fā)明也意圖包含這些改動和變形。
【主權項】
1.一種2D游戲的動畫實現(xiàn)方法,其特征在于:包括以下步驟: 獲取并保存不需要移動的固定對象及需要移動的運動對象; 根據動畫需要設定運動對象于固定對象中的初始位置、運動動作和終止位置,生成動作描述文件; 通過游戲引擎讀取動作描述文件,創(chuàng)建并控制運動對象的動作; 運動對象執(zhí)行動作,完成動畫。2.根據權利要求1所述的方法,其特征在于:所述描述文件為python字典,且游戲引擎根據所述描述文件轉化得到相應的數(shù)據結構,并通過路徑法和描述法的方式創(chuàng)建新的運動對象及運動對象的動作。3.根據權利要求2所述的方法,其特征在于:完成動畫后,還包括步驟:將由游戲引擎轉化得到的數(shù)據結構緩存至一全局字典中。4.根據權利要求3所述的方法,其特征在于:當需要再次加載相同的動畫時,從全局字典中直接獲取相應的數(shù)據結構,并根據該數(shù)據結構對運動對象的動作實現(xiàn)再次控制,使運動對象執(zhí)行相應的動作,完成動畫。5.根據權利要求1所述的方法,其特征在于:當需要將當前動畫切換為新的動畫時,包括以下步驟: 回收構成當前動畫的固定對象和運動對象; 從回收到的固定對象和運動對象中抽取新的動畫中需要的對象; 通過游戲引擎讀取動作描述文件,創(chuàng)建并控制所抽取的對象的動作; 動作對象執(zhí)行動作,新的動畫創(chuàng)建完成。6.根據權利要求1所述的方法,其特征在于:所述運動對象的動作包括移動或旋轉或縮放或移動、旋轉和縮放的結合。7.一種2D游戲的動畫實現(xiàn)系統(tǒng),其特征在于:包括 對象獲取模塊,用于獲取并保存不需要移動的固定對象及需要移動的運動對象; 描述文件模塊,用于根據動畫需要設定運動對象于固定對象中的初始位置、運動動作和終止位置,生成動作描述文件; 游戲引擎模塊,用于讀取所述描述文件,創(chuàng)建運動對象的動作; 控制模塊,用于根據所述游戲引擎模塊控制運動對象的動作; 動畫播放模塊,用于根據控制模塊播放運動對象的執(zhí)行動作,完成動畫。8.根據權利要求7所述的系統(tǒng),其特征在于:所述描述文件為python字典,且所述游戲引擎模塊根據所述描述文件轉化得到相應的數(shù)據結構,并通過路徑法和描述法的方式創(chuàng)建新的運動對象及運動對象的動作。9.根據權利要求8所述的系統(tǒng),其特征在于:所述描述文件模塊還用于在動畫播放模塊完成動畫播放后,將游戲引擎轉化得到的數(shù)據結構緩存至一全局字典子模塊中;以及所述控制模塊還用于當需要再次加載相同的動畫時,從全局字典子模塊中直接獲取相應的數(shù)據結構,并根據該數(shù)據結構對運動對象的動作實現(xiàn)再次控制,使運動對象執(zhí)行相應的動作,完成動畫。10.根據權利要求1所述的系統(tǒng),其特征在于:還包括動畫切換模塊,用于將當前動畫切換為新的動畫;所述動畫切換模塊包括對象回收子模塊和對象抽取子模塊; 所述對象回收子模塊,用于回收構成當前動畫的固定對象和運動對象; 所述對象抽取子模塊,用于從所述對象回收子模塊回收到的固定對象和運動對象中抽取新的動畫中需要的對象; 以及, 所述游戲引擎模塊還用于根據描述文件創(chuàng)建對象抽取子模塊中抽取得到的對象的動作; 所述控制模塊還用于根據游戲引擎模塊控制對象抽取子模塊中抽取得到的對象的動作; 所述動畫播放模塊還用于根據控制模塊播放對象抽取子模塊中抽取得到的對象的動作,新的動畫創(chuàng)建完成。
【專利摘要】本發(fā)明涉及一種2D游戲的動畫實現(xiàn)方法和系統(tǒng),該方法包括以下步驟:獲取并保存不需要移動的固定對象及需要移動的運動對象;根據動畫需要設定運動對象于固定對象中的初始位置、運動動作和終止位置,生成動作描述文件;通過游戲引擎讀取動作描述文件,創(chuàng)建并控制運動對象的動作;運動對象執(zhí)行動作,完成動畫。本發(fā)明通過將一個構成一個動畫的對象分為不移動的固定對象(如建筑背景)和一個需要運動以達到動畫效果的運動對象,由此將圖片(固定對象)和粒子(運動對象)作為部件組裝起來,通過配置相應的動作即可推動動畫的播放,有效避免了現(xiàn)有采用序列幀方式實現(xiàn)動畫表現(xiàn)所引起的內存空間占用大、游戲容易發(fā)生閃退及圖片復用率小等現(xiàn)象的發(fā)生。
【IPC分類】G06T13/80
【公開號】CN105678830
【申請?zhí)枴緾N201511033648
【發(fā)明人】徐波
【申請人】廣州多益網絡科技有限公司
【公開日】2016年6月15日
【申請日】2015年12月31日