• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 一些Cocos游戲引擎開發工具

    標簽: cocos  游戲引擎  開發工具

    綜述:
    這篇摘要主要來講講一些實用的游戲開發方面的工具,本期以cocos引擎為主。

    Cocos引擎

    介紹引擎的垃圾話就不說了,自行百度,我相信沒多少人想看。

    常用的工具

    合圖工具(TexturePacker)

    其實有不少的合圖工具,這里介紹其中一款不錯的TexturePacker合圖工具。
    先說說為什么需要把圖片合到一張里面。我們知道圖片文件顯示在游戲上,是有一個過程的,即文件被讀取到內存,再轉碼為GPU能識別的紋理。那么這個轉換過程的速度,就會受到兩個主要因素影響:

    • 讀取圖片文件的I/O速度
    • 圖片解碼的速度

    前者的速度怎么提高,就是盡量減少I/O的操作,比起一張一張的I/O,直接扔一張大的集合進去會快的多,可能一次性的讀取時間會增加,這里隨便加一個Loading進度條動畫就行,后面的速度會快很多。
    而后者的速度,跟你讀取的圖片大小有關系,所以即使是合圖,也不宜很大,最好是零散的小圖片合集,大片大片的場景圖就不要合成了。
    TexturePacker是收費軟件,雖然也有**版,但是能買還是買,支持正版。

    官網下載地址

    1. 我們先來看看這個主界面,嗯。。。全英文,不過應該能看懂。

    合圖界面

    1. 我們點擊正上方的按鈕,可以選擇一個一個圖片拉到左邊的Sprites框里,也可以直接Add smart folder。當然不要一下子拉進來太多。

      這里寫圖片描述

    2. 然后我們就能看到這個合圖文件plist了。不過有一點要注意,免費版的打出來可能會有水印。如果你想要輸出其他格式的,在右邊的Data Format調節,還有一些細節的自行研究。

      打包成功

    裂圖工具(PlistView)

    這個裂圖工具其實沒什么好講頭,只是我無聊想劈開plist文件時候找的,挺小的500k。

    百度網盤分享

    1. 界面很清爽,操作很暴力。右上角兩個按鈕,我們點擊加載圖片。

    裂圖界面
    2. 我以一個寶箱素材為例,切圖需要有plist和對應的png文件,不是什么都能切的!!

    舉例
    3. 打開之后是這個界面,這個時候我們只需要點擊保存圖片,就會在素材的當前目錄下導出單個的圖片。

    進行切割

    成功

    物理形狀工具(PhysicsEditor)

    PhysicsEditor和TexturePackage是同一家公司的產品,PhysicsEditor是用來描繪物理剛體形狀的,一般如果我們需要設計一些復雜一點的形狀,尤其是不規則的,比如我舉個例子,飛機。

    飛機
    這個飛機如果我們只是

    local plane = Plane.new()
    plane:setPhysicsBody(cc.PhysicsBody:createBox(plane:getContentSize()))

    那么我們得到的一個飛機剛體形狀就是一個Box,這樣的話,子彈如果碰到你飛機的空白區域,就會提前爆炸,當然如果你代碼進行區域判斷處理應該也可以。不過我覺得有點麻煩。
    那么PhysicsEditor應該怎么用,

    界面
    界面風格類似的,引入圖片資源和導出資源文件。

    描述形狀
    我們使用的是第三個,也就是自定義的形狀,第一和第二個是圓形和簡單的多邊形。

    進行中
    打開自定義形狀之后,是不是覺得這個描邊很棒。有必要知道這幾個參數的意思:

    • Tolerance:形狀公差,但一要素所允許的變動量
    • Trace node:跟蹤節點
    • Alpha threshol:閾值
    • Trace mode:追蹤方式
    • vertexes:頂點數量

    上方有一個滑動條,放大或縮小作用。頂點數量可以調整。

    導出
    還有幾個要注意的點,cocos3.x后,物理部分就默認使用Chipmunk了,不要用Box2D部分,這兩者封裝的頂點順序有差別。錨點的選擇也要跳到中心(0.5,0.5)。一切準備好之后,你就會看到對應的plist文件。
    用文本工具打開,能看到一串的點,這就是我們要的頂點數據。

    導出
    比如我們代碼中使用,就可以(舉個例子,并不對應上述點位置)

    代碼
    這樣創建飛機。
    當然會有人問這樣一個一個點的輸入很麻煩,是的,非常麻煩。有兩個解決辦法:
    1. 盡量用少的點,精細的點來代替你的要求,否則換一個物理構建方式。
    2. 用第三方的庫來引用。

    對于第二點,我們可以用GB2ShapeCache-x 或者PEShapeCache_X3_0類似的,這些庫可以直接導入你的plist文件,很方便,自己寫的也可以。但是這些都是在C++層面,也就是cocos2d-x的版本,Quick和Lua框架需要進行相應的Lua-binding,然后Lua-binding又會有不少的問題。。。如果有機會,下次會講。這方面的后續知識需要自己百度。

    粒子編輯器工具

    cocos自己的粒子其實比unity遜色多了,不過有時候還是得用。偷懶的話用網頁就行。。
    網上一搜,免費的粒子編輯器太多了,但是在實際使用過程中可能會出現各種問題,到時候實際問題還是需要實際解決,我下面列舉幾款。
    網頁在線編輯粒子
    有一點要記住,cocos能識別的粒子多半是plist文件格式配合紋理圖,AE、Unity或者其他引擎識別的粒子都是不行的,而且cocos的源代碼對粒子這方面的支持比較少,比如不支持單個粒子的改動,如果有這方面的需求,可以手動修改源代碼,或者尋找其他的方法。
    1. 最常見的Windows的粒子編輯器是Cocos2d Particle Builder,

    粒子編輯器
    基礎的屬性都有,也能導出為plist文件。我個人的意見的cocos的粒子效果期望不要太高,滿足基本要求就行,達不到FX Particle Builder的效果。至于里面的一些具體的粒子屬性,粒子發射速度,顏色,重力,加速度,生命周,角度什么的還請慢慢研究。

    編輯
    導出時選擇Save as,保存為plist文件。這樣就可以直接在代碼里面使用。導出時有兩個選項,是嵌入紋理還是單獨出來,看需求。我一般是嵌入紋理。
    2. 最近找到另一款開源的編輯器,準備試試。看Texture是挺不錯的,項目里面有詳盡的使用說明,貼幾張圖和地址。
    這里寫圖片描述

    這里寫圖片描述

    這里寫圖片描述

    這里寫圖片描述

    這里寫圖片描述
    開源粒子編輯器

    界面編輯器(Cocos Studio和Cocos Creator)

    Cocos Studio和UI編輯器屬于官方的編輯器,不過已經停止更新了,觸控現在在推的主要是Cocos Creator和js語言。以前的游戲開發團隊會使用1.6版本或者2.x的版本,Cocos Studio里面也有上述的一些編輯器的功能,比如合圖csi,1.6版本的四大編輯器但是有不少的缺點,比如動畫編輯時不能復制簡單的幀等等。至于為什么團隊不使用最新的技術,每個團隊有每個團隊自己的考慮。這些官方的說明還是去看官方的文檔更好。給一個Cocos Creator官方文檔的鏈接。GitBook

    版權聲明:本文為qq_32174013原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_32174013/article/details/79113947

    智能推薦

    bat腳本判斷服務是否存在windowsXP

    有一個在xp系統下自動判斷snmp服務并安裝的需求。 起因 在網上查了一些判斷服務是否存在的辦法,最常見的是調用sc query |find /i "snmp",但是經過我測試,這個方法只能判斷服務是否開啟,對于存在未開啟的服務無法查詢,因此直接查詢服務是否存在應該使用sc query snmp這個語句。這些內容在下面這篇博客bat判斷window服務是否存在也提到了。 這個辦...

    一個簡單的socket服務端Demo

    博主本人用的是maven管理的spring-mvc。 核心代碼如下: OioServer.java,socket服務端實體類 OioServerTest.java,socket服務端測試類 Demo項目結構如圖: 啟動服務端: 使用終端敲命令行連接服務端: 終端命令為: 客戶端發消息給服務端,服務端收到消息 終端輸入Ctrl+]可以進入telnet的命令模式,之后輸入quit,之后回車就可以關閉t...

    MAHAKIL之最新類不平衡過采樣方法

           最近在幫實驗室一師兄做實驗時,剛好在學習類不平衡的采樣方法,采樣方法大致分為過采樣和欠采樣兩大類,但是目前研究的主要為過采樣方法,因為它主要是往少數類集合中增加樣本點實現與多數類集合的動態平衡,這樣能最大程度的保證樣本的準確性,所以我將會在接下來的幾篇博客里詳細闡述過采樣方法。過采樣方法一般分為ROS(隨機過采樣),SMOTE-Regular,...

    關于靜態/動態類型檢查 和 不可變包裝的筆記

    靜態類型檢查和動態類型檢查 Java是一種靜態類型語言。所有變量的類型在編譯時(在程序運行之前)都是已知的,因此編譯器也可以推導出所有表達式的類型。如果a和b聲明為int,那么編譯器得出結論,a+b也是int。 相比較之下,在像Python這樣的動態類型語言中,這種檢查會被推遲到run-time。 靜態檢查一個bug比動態檢查好,而動態檢查它比根本不沒檢查它好。 靜態檢查的好處就是可在編譯階段發現...

    IntelliJ IDEA中創建xml文件

    IntelliJ IDEA中創建xml文件 1、file—setting,左上角輸入template, 2、在左側欄找到File And Code Templates 3、中間選中Files 4、點擊+號,添加模板 5、輸入模板名字:Name:mybatis-cfg.xml (name可以自定義) 6、后綴名extension:xml 7、在面板中間輸入內容: 8、把enable li...

    猜你喜歡

    CocosCreator內存與性能優化

    CocosCreator內存與性能優化 一、內存優化 因為 iOS小游戲和微信共用同一個進程,而微信在連續兩次收到系統內存警告的時候會關閉小游戲并釋放小游戲占用的內存。如果你的小游戲有外網用戶反饋“閃退”,或者你自己測試的時候頻繁出現“該小程序可能導致微信響應變慢被終止”等提示,那么就應該是時候優化你的小游戲內存了! 1、優化雙份紋理(必做!) 在你...

    TabLayout+ViewPager實現橫向tab導航欄

    效果 實現方案 activity 布局文件 activity_main.xml view_pager_1.xml view_pager_2.xml 完整源代碼 https://gitee.com/cxyzy1/tablayoutDemo...

    springboot進階

    1.配置文件application.yml 1.1基本語法 k:(空格)v:表示一對鍵值對(空格必須有); 以空格的縮進來控制層級關系;只要是左對齊的一列數據,都是同一個層級的 屬性和值也是大小寫敏感; 1.2值的寫法 1)字面量:普通的值(數字,字符串,布爾) k: v:字面直接來寫; 字符串默認不用加上單引號或者雙引號; “”:雙引號;不會轉義字符串里面的特殊字符;特殊...

    OpenCV學習筆記(二)——初始Mat類

    前言:      在計算機內存中,數字圖像以矩陣的形式存儲和運算,比如,在MatLab中,圖像讀取之后對應一個矩陣,在OpenCV中,同樣也是如此。     在早期的OpenCV1.x版本中,圖像的處理是通過IplImage(該名稱源于Intel的另一個開源庫Intel Image Processing Library ,縮寫成...

    ArrayList實現

    API https://docs.oracle.com/javase/8/docs/api/ 實現 MyList MyArrayList MyIterator MyArrayListIterator Test...

    精品国产乱码久久久久久蜜桃不卡