本發明專利技術涉及一種基于cocos2dx的flash渲染方法和渲染引擎,其中渲染方法,包括:分析輸入的swf文件,提取文件中的資源;分析圖形資源,得到每一圖形的類別、形變信息、顏色變換、顏色偏移和位置;將相同類別的圖形合并,并記錄每一原圖形的形變信息、顏色變換、顏色偏移和位置;根據原圖形的形變信息、顏色變換、顏色偏移和位置將圖形渲染至指定幀中。與現有技術相比,本發明專利技術本發明專利技術使用Flash動畫的思想,將動畫拆分為圖元和形變(包括位置移動、旋轉、縮放、拉伸等)分開存儲,在運行時計算圖像的真實位置,這樣就可以避免多幀反復存儲于圖像中,引起紋理存儲空間不足的問題。
【技術實現步驟摘要】
本專利技術涉及一種游戲開發領域,尤其是涉及一種基于cocos2dx的flash渲染方法和渲染引擎。
技術介紹
隨著游戲行業的發展,對游戲畫面的要求逐步提高,需要設計人員和程序員配合協調進行游戲畫面的開發,cocos2dx是一個當下流行的、跨平臺開源游戲引擎,主要針對移動平臺的游戲開發,以往利用其添加動畫的方法大致有以下三類:(一)在cocos2dx游戲引擎中添加動畫的方式是:1、設計人員使用動畫編輯工具編輯好動畫2、導出成序列幀(即每一幀一張圖片)3、使用合圖工具(TexturePacker等)將每一幀對應的圖片合成為一張整圖,并產生一個plist文件4、在cocos2dx中加載plist文件并順序播放幀。然而,序列幀動畫在動畫編輯器中進行編輯,然后導出成序列幀圖片,即使再經過合圖工具將所有圖片合并為同一張紋理。不能避免地會將每一幀的可視內容都畫下來并存儲在圖片格式中,當加載時,需要將整個圖片都加載為紋理,即使之后的幾幀的圖像內容只是由前一幀的內容經過放大、移動等方式獲取,這種方法也沒法進行識別和紋理合并,其內存占用之大可想而知。尤其是針對那些“小圖大范圍移動”的情況(如若干飛鳥在整個場景中飛行),由于無法將大小為整個場景的多張圖片同時合成到一張紋理中,用這種方法無法實現。(二)使用程序控制的方式實現動畫:1、設計制作好需要進行變換的圖片直接交給軟件研發工程師2、軟件工程師根據策劃、美術的需求,編寫代碼實現對應的效果然而使用程序控制圖片運動,可以實現圖片的替換、形變、移動等操作,可以說這是一種“完全”的實現方式,只要是游戲引擎能夠實現的效果都可以實現。但是此方法無法做到“所見即所得”,在現代程序工業飛速發展的今天,誰能更快一步制作完成產品就可以取得先機,但是動畫中每一個動作都必須由策劃、美術口授,由程序員通過編碼實現,無疑嚴重拖慢了項目進度。(三)在較新的cocos2dx版本中,出現了對于矢量動畫的支持:骨骼動畫。使用骨骼動畫編輯一個動畫的流程是:1、打開cocostudio程序中的動畫編輯器程序編輯動畫2、導出成資源文件(plist/png/json等)3、在cocos2dx中加載骨骼動畫。使用cocos2dx官方最新提供的骨骼動畫編輯工具,其思路和本專利技術的思路類似,也是為了解決前兩個缺陷而做的。但是它本身(時間上出現得更晚)有以下缺點:1)代碼實現上的重量級,不管是cocostudio代碼還是cocos2dx中都是以一個獨立、完整的功能發布,無疑提高了該功能傳播、優化的門檻。2)不支持swf格式轉換,由于現代美術制作人員都使用比較成熟的動畫編輯工具,而此技術則需要使用者學習cocostudio的使用。可以說,此技術的功能不完善,且被完全包含于swf制作工具的功能之內。
技術實現思路
本專利技術的目的就是為了克服上述現有技術存在的缺陷而提供一種基于cocos2dx的flash渲染方法和渲染引擎。本專利技術的目的可以通過以下技術方案來實現:一種基于cocos2dx的flash渲染方法,包括:分析輸入的swf文件,提取文件中的資源;分析圖形資源,得到每一圖形的類別、形變信息、顏色變換、顏色偏移和位置;將相同類別的圖形合并,并記錄每一原圖形的形變信息、顏色變換、顏色偏移和位置;根據原圖形的形變信息、顏色變換、顏色偏移和位置將圖形渲染至指定幀中。所述分析圖形資源,得到每一圖形的類別、形變信息、顏色變換、顏色偏移和位置,包括:遞歸分析組成每一圖形的子圖形;得到每一圖形及其子圖形的類別、形變信息、顏色變換、顏色偏移和相對位置。所述分析輸入的swf文件的過程中,還獲取畫布信息、幀率。所述根據原圖形的形變信息、顏色變換、顏色偏移和位置將圖形渲染至指定幀中,包括:基于圖形的類別,以及原圖形的顏色變換、顏色偏移和位置生成對應的紋理實體;基于圖形的組成結構以及原圖形的形變信息生成容器實體;在cocos2dx中渲染紋理實體和容器實體。所述容器實體由原圖形的形變信息,以及組成該圖形的所有子圖形對應的容器實體組成。一種基于cocos2dx的flash渲染引擎,包括:swf文件分析模塊,用于分析輸入的swf文件,提取文件中的資源;圖形分析模塊,用于分析圖形資源,得到每一圖形的類別、形變信息、顏色變換、顏色偏移和位置;合圖模塊,用于將相同類別的圖形合并,并記錄每一原圖形的形變信息、顏色變換、顏色偏移和位置;擴展模塊,用于根據原圖形的形變信息、顏色變換、顏色偏移和位置將圖形渲染至指定幀中。所述圖形分析模塊包括:遞歸分析單元,用于遞歸分析組成每一圖形的子圖形;紋理分析單元,用于得到每一圖形及其子圖形的類別、形變信息、顏色變換、顏色偏移和相對位置。所述渲染引擎還包括用于分析輸入的swf文件的過程中獲取畫布信息、幀率的基本信息分析模塊。所述擴展模塊包括:紋理實體處理單元,用于基于圖形的類別,以及原圖形的顏色變換、顏色偏移和位置生成對應的紋理實體;容器實體處理單元,用于基于圖形的組成結構以及原圖形的形變信息生成容器實體;渲染單元,用于在cocos2dx中渲染紋理實體和容器實體。與現有技術相比,本專利技術具有以下優點:1)本專利技術使用Flash動畫的思想,將動畫拆分為圖元和形變(包括位置移動、旋轉、縮放、拉伸等)分開存儲,在運行時計算圖像的真實位置,這樣就可以避免多幀反復存儲于圖像中,引起紋理存儲空間不足的問題。2)同時由于兼容swf文件格式,使得編輯動畫可以在傳統的動畫制作軟件中進行,方便美術人員的工作。附圖說明圖1為本專利技術方法的主要步驟流程示意圖;圖2為導出工具的使用流程示意圖。具體實施方式下面結合附圖和具體實施例對本專利技術進行詳細說明。本實施例以本專利技術技術方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本專利技術的保護范圍不限于下述的實施例。本申請方案在實施之前,必須要依賴以下幾點:1、cocos2dx游戲引擎cocos2dx是一個當下流行的、跨平臺開源游戲引擎,主要針對移動平臺的游戲開發,本專利技術的目的也是對cocos2dx進行擴展,使其能更方便、更快捷地支持游戲研發工作。cocos2dx的特點是:跨平臺性:引擎已可以支持iOS、Android、WindowsXP/7,Meego、BlackBerry、Bada等,易用性:易于學習掌握的API,大量示例代碼和文檔,有c++語言功底的新手只需畫一個月就能上手完成簡單游戲;高效性:使用OpenGLES1.1最佳方式進行渲染;靈活性:易于擴展,易于與其他開源庫集成使用;活躍的社區:全球化的活躍論壇。成功商用:根據開源社區的保守統計,基于Cocos2d-x開發的游戲全球范圍內已經突破一億安裝量。2、flash動畫。Flash原是Macromedia公司的軟件產品,后被Adobe收購。其播放器AdobeFlashPlayer被全球絕大部分PC所使用,而Flash編輯工具AdobeFlashProfessional被廣泛用于動畫制作,其主要文件格式之一:swf格式是普及程度非常高的文件格式,超過99%的網絡用戶都可以讀取swf文件。使用Flash動畫有以下特點:被大量應用于因特網網頁的矢量動畫文件格式。使用矢量圖形(VectorGraphics)的方式,產生出來的視頻占用存儲空間較小。使用Fl本文檔來自技高網...

【技術保護點】
一種基于cocos2dx的flash渲染方法,其特征在于,包括:分析輸入的swf文件,提取文件中的資源;分析圖形資源,得到每一圖形的類別、形變信息、顏色變換、顏色偏移和位置;將相同類別的圖形合并,并記錄每一原圖形的形變信息、顏色變換、顏色偏移和位置;根據原圖形的形變信息、顏色變換、顏色偏移和位置將圖形渲染至指定幀中。
【技術特征摘要】
1.一種基于cocos2dx的flash渲染方法,其特征在于,包括:分析輸入的swf文件,提取文件中的資源;分析圖形資源,得到每一圖形的類別、形變信息、顏色變換、顏色偏移和位置;將相同類別的圖形合并,并記錄每一原圖形的形變信息、顏色變換、顏色偏移和位置;根據原圖形的形變信息、顏色變換、顏色偏移和位置將圖形渲染至指定幀中。2.根據權利要求1所述的一種基于cocos2dx的flash渲染方法,其特征在于,所述分析圖形資源,得到每一圖形的類別、形變信息、顏色變換、顏色偏移和位置,包括:遞歸分析組成每一圖形的子圖形;得到每一圖形及其子圖形的類別、形變信息、顏色變換、顏色偏移和相對位置。3.根據權利要求1所述的一種基于cocos2dx的flash渲染方法,其特征在于,所述分析輸入的swf文件的過程中,還獲取畫布信息、幀率。4.根據權利要求2所述的一種基于cocos2dx的flash渲染方法,其特征在于,所述根據原圖形的形變信息、顏色變換、顏色偏移和位置將圖形渲染至指定幀中,包括:基于圖形的類別,以及原圖形的顏色變換、顏色偏移和位置生成對應的紋理實體;基于圖形的組成結構以及原圖形的形變信息生成容器實體;在cocos2dx中渲染紋理實體和容器實體。5.根據權利要求5所述的一種基于cocos2dx的flash渲染方法,其特征在于,所述容器實體由原圖形的形變信息,以及組成該圖形的所有子圖形對應的容器實體組成。6.一種基于cocos2dx的flash...
【專利技術屬性】
技術研發人員:馬旭,
申請(專利權)人:上海野火網絡科技有限公司,
類型:發明
國別省市:上海;31
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。