Showing posts with label cocos2d-iphone. Show all posts
Showing posts with label cocos2d-iphone. Show all posts

2012/11/21

cocos2d-iphone與ARC

cocos2d-iphone尚未轉為ARC(Automatic Reference Counting ),它的專案範本預設也把ARC關閉。這篇要講在建立專案後,讓cocos2d的部份維持「不啟用ARC」,但讓其他部分的程式碼「啟用ARC」。

請先參考這篇文章安裝cocos2d-iphone並建立Hello World

開始前,請先Build看看是否有無問題,然後再繼續往下。

主要有兩大步驟:第一,先將cocos2d的部份改成靜態程式庫,與主程式部分區離。第二,將主程式部分轉成ARC、啟用ARC。

開啟專案後,將「黃色群組的libs」刪除,但記得選「Remove References Only」,因為並非真的要刪除,而是要把libs(也就是cocos2d-iphone部分的程式碼)改成靜態程式庫。


點選左邊的專案(藍色圖示),然後點選畫面中間下面的「Add Target」。


選擇Framework & Library裡的Cocoa Touch Static Library。


命名(例如cocos2d-library),記得取消勾選「Include Unit Tests」與「Use Automatic Reference Counting」。


建立後,點選該建置目標cocos2d-library,在搜尋欄位裡輸入"search",需要修改兩項建置設定。將Always Search User Paths設為YES,將User Header Search Paths設為「./**」。


點選原有的建置目標HelloWorld(這是我新增專案時取的名字),點選標籤Build Phases,展開Link Binary With Libraries並點選+按鈕,點選剛新增的libcocos2d-library.a。這麼一來,主程式與cocos2d程式庫最後就會進行連結。


接下來要將cocos2d程式碼重新加入,請選xocde-File-Add Files to "HelloWorld"...,選擇處於專案目錄下的libs後,取消勾選Copy items into destination group's folder (if needed),勾選Create groups for any added folders,而Add to targets記得選cocos2d-library。


至此完成第一大步驟,你可以Build看看,應能成功且不該出現錯誤訊息。

接下來是第二大步驟,啟用主程式部分的ARC,請選xcode-Edit-Refactor-Convert to Objective-C ARC...,然後選擇HelloWorld.app,取消勾選libcocos2d-library.a。


此轉換工具會幫你把程式碼轉成符合ARC的寫法,而且HelloWorld.app的建置設定的Objective-C Automatic Reference Counting會變成YES。

完成囉,Build並Run,應該會得到同樣的Hello World畫面。


參考資料:

2012/10/25

cocos2d-iphone遊戲開發輔助工具

點陣字型(bitmap font):
* BMFont(AngelCode Bitmap Font Generator),有Windows版。
* Glyph Designer,有Mac版。
* bmGlyph(bitmap glyph),有Mac版。
* fonteditor,有Mac、Java版。
* LabelAtlasCreator,有Mac版。
* Hiero Bitmap Font Tool,太舊已無更新,有bug。Java Web程式。

Texture Atlas(Sprite Sheet):
* TexturePacker,有Windows、Mac、Ubuntu版。
* Zwoptex,有Mac、Flash版。
* darkFunction Editor,有Java版。
* SpriteHelper,與LevelHelper為姊妹產品,兩者搭配使用效果更佳,有Mac版。
* Sprite Sheet Packer,不能直接輸出cocos2d相容的格式,有Windows版。

關卡、場景編輯(Scene and Level):
* CocosBuilder,有Mac版。
* Cocoshop,有Mac版。
* LevelHelper,有Mac版。
* JSONWorldBuilder,有Mac版。

Tilemap磁磚拼貼式地圖:
* Tiled Map Editor,開放原始碼,儲存格式在此,有Windows跟Mac版,Java版不再更新。
* iTileMaps,有iPad、iPhone版。

Particle System粒子系統:
* Particle Designer,有Mac版。
* ParticleCreator,有Mac版。

Physics Engine物理引擎:
* PhysicsEditor,有Windows跟Mac版。
* VertexHelper,有Mac版。
* Mekanimo,有Windows版。
* PhysicsBench,有Mac版。

音訊、音檔編輯與格式轉換:
* Audacity,音訊編輯,開放原始碼,有Windows、Mac跟Linux版。
* WinFF,音訊格式轉換,開放原始碼,有Windows跟Linux版。
* Sound Converter,音訊格式轉換,有Mac版。小檔500K以下不用錢?
* Audio Converter,音訊格式轉換,有Windows版。
* afconvert,音訊格式轉換,Mac OS X命令列模式下的工具。
* GarageBand,有Mac版,錄音,音訊編輯。。

影像編輯:
* GIMP,強大的影像編輯軟體。有Windows、Mac、Linux版。
* Seashore,基本型影像編輯軟體,以GIMP底層技術為基礎,使用與GIMP相同的原生影像檔格式。有Mac版。
* Pixen,適合用來繪製像素畫,具有動畫編輯功能。有Mac版。
* ArtIcons,適合用來繪製游標、小圖示、像素畫。有Windows版。
* Microangelo,適合用來繪製游標、小圖示、像素畫。有Windows版。
* Inkscape,向量圖編輯軟體,開放原始碼,格式為Scalable Vector Graphics (SVG),有Windows、Mac、Ubuntu版。

其他:
* Spriter,製作遊戲中人物動畫(玩家角色、怪物)的工具,有Windows、Mac、Linux版。目前尚未被cocos2d-iphone支援。

很多工具都有提供試用版或功能較少的免費版,可先試用,若不滿意,那就請投資預算囉。


參考資料:
* Steffen Itterheim的The Complete (?) List Of Cocos2D Tools
* abitofcode 的Cocos2d – useful tools
* Ludum Dare » Tools,列出一些有名且免費的工具

2011/09/13

cocos2d-iphone的安裝、移除與Hello World

這篇是cocos2d-iphone的安裝與移除,我的環境是Mac OS X Snow Leopard(10.6.8)、Xcode 4.2 for Snow Leopard(Build: 4C199)。

安裝非常容易,先到這裡下載打包壓縮後的檔案,目前1.x版的最新穩定釋出版本是cocos2d-iphone-1.0.1.tar.gz,大小約32 MB;2.x版則為cocos2d-iphone-2.0.tar.gz版,大小約39 MB,不過cocos2d 1.x與2.x有所差異,可看這裡判斷。

(如果你想追求最新版本的話,cocos2d的最新原始碼放在GitHub上,其中分支develop是1.x版,分支develop-v2是2.x版。)

底下以cocos2d-iphone-2.0.tar.gz為例。

先解壓縮
$ tar zxvf cocos2d-iphone-2.0.tar.gz

解壓縮後會有一個目錄cocos2d-iphone-2.0,基本上,這是cocos2d開發人員的工作區,我們並不直接在裡面開發遊戲,不過你可以用Xcode開啟cocos2d.xcworkspace,裡面有非常多的範例與測試,請執行看看。

開啟此workspace後,在左欄看到三個project,cocos2d-mac(cocos2d-iphone也開始支援mac平台)、cocos2d-ios(顧名思義)、cocos2d-ios-PerformanceTests(測試效能)。


裡頭有很多建置目標,請隨便選、測試看看。


這是LabelTest。


這是ParallaxTest。


這是RotateWorldTest。


當然,這些是供測試用的範例,你可以到這裡看看以cocos2d開發出來的遊戲的畫面,大概了解一下cocos2d的能力。

接下來要安裝cocos2d的Xcode專案範本,先cd進之前解壓縮後的目錄,然後:

$ ./install-templates.sh
(可能要用 sudo ./install-templates.sh 以root權限安裝)

這支script會把cocos2d的專案範本安裝在/Users//Library/Developer/Xcode/Templates/cocos2d v2.x/之下,把檔案範本安裝在/Users//Library/Developer/Xcode/Templates/File Templates/cocos2d v2.x/之下。

如果你之前有安裝過舊版,可加上參數-f強制覆蓋。


接下來,讓我們用安裝後的專案範本弄出一個基本的Hello World。

執行xcode-File-New-New Project...,選擇cocos2d這個專案範本,


取個名字、選個目錄存放後,你可以看到:


不多說,將執行對象改為模擬器後,直接按Run執行:


哇,已經出現Hello World啦。你可以試試看其他兩個專案範本,那是跟物理引擎有關的。

接下來,就請你看看這篇cocos2d-iphone的學習資料,動手開發你的遊戲吧。


如果你想移除的話,很簡單:
1. 刪除目錄cocos2d-iphone-2.0,這是解壓縮cocos2d-iphone-1.0.1.tar.gz後得到的。

2. 刪除專案範本與檔案範本,路徑是 /Users//Library/Developer/Xcode/Templates/cocos2d v2.x/與/Users//Library/Developer/Xcode/Templates/File Templates/cocos2d v2.x/。

3. 刪除你自己建立的Xcode專案。

2011/09/12

cocos2d-iphone的學習資料

cocos2d這套開放原始碼的遊戲引擎,最初是以Python寫的,後來有了各平台和程式語言的移植版本,有Java的Android版、有C++跨平台版有JavaScript的瀏覽器版cocos2d-html5,以及Objective-C的iPhone版,也就是這裡要講的cocos2d-iphone,以Objective-C寫的,目標平台是iOS(現在也開始支援Mac OS X)。所以,底下提到cocos2d時,指的都是這一套。



這是cocos2d-iphone的logo,快樂的圖案給iOS用,生氣的給Mac用。


cocos2d-iphone的學習資料:

1. cocos2d-iphone的官方網站原始碼在GitHub上文件(API、常見問答集、等等)、論壇、開發出來的遊戲列表

2. 討論遊戲開發的論壇:iPhone Dev SDK討論遊戲的板面Stack Exchange的遊戲開發QA論壇、等等。

3. 書,Learn iPhone and iPad Cocos2D Game Development,Apress 2010年12月出版,作者Steffen Itterheim。書中用的版本應該是cocos2d 0.99.3。作者不是只出本書就算了,出書前就有專門發表cocos2d遊戲開發的網站、還架設了論壇、錄製教學影片,另外,還把cocos2d與Wax(Lua on Objective-C)、iSimulate、cocos2d-iphone-extensions、cocos3d、SneakyInput、Chipmunk SpaceManager等等整合起來,名為Kobold2D,用起來就更方便了。

更新:這本書的第二版,Learn cocos2d Game Development with iOS 5,2011年11月出版,更新為cocos2d 1.0.1、iOS 5、Xcode 4。

更新:這本書的第三版,Learn cocos2d 2: Game Development for iOS,2012年9月出版,更新為cocos2d 2.0、iOS 5與6、Xcode 4.3與4.4、ARC。似乎會有中文翻譯本。

4. 書,Learning Cocos2D: A Hands-On Guide to Building iOS Games with Cocos2D, Box2D, and Chipmunk,Addison-Wesley 2011年7月出版,作者Rod Strougo與Ray Wenderlich。書中用的版本似乎是cocos2d 0.99.5。作者Ray的部落格在此,上面有很多iOS軟體開發與cocos2d遊戲開發的文章。這本書的官方網站

中文翻譯本:Cocos2D 遊戲程式開發攻略-動手撰寫你的第一支 iOS 遊戲

5. 書,Cocos2d for iPhone 0.99 Beginner's Guide,Packt 2011年1月出版,作者Pablo Ruiz。書中用的版本應該是0.99.5之前的。

以上書籍裡所使用的cocos2d版本,多少會跟目前最新的穩定釋出版本不同。請注意,cocos2d有些類別與方法的名稱會改變,譬如在0.99.5裡,CCLabel改名為CCLabelTTF、CCBitmapFontAtlas被CCLabelBMFont取代,所以如果你使用的cocos2d版本與書中不同的話,會遇到這些煩人的差異,詳情請看各版本的release note。不過,1.x已經進入維護狀態,應該不會再有大改變。

6. 書,Cocos2d for iPhone 1 Game Development Cookbook,Packt  2011年11月出版,作者Nathan Burba。

這本稍微進階一點,好書。

7. 書,Learning iOS Game Programming: A Hands-On Guide to Building Your First iPhone Game,Addison-Wesley 2010年9月出版,作者Michael Daley。

這本不是講cocos2d,而是在iOS SDK與OpenGL ES之上開發遊戲,舉個例子,在cocos2d裡,我們有CCLabelBMFont可用來繪製點陣字型,而這本書則是自己寫出程式碼來繪製文字。概略來說,這本書的內容是介紹遊戲開發時的各種概念(sprite sheet、tile map),開發出一套遊戲引擎(書中的程式碼),並實際寫一支遊戲做範例(寫出來的遊戲Sir Lamorak's Quest有放在App Store上)。

有中文翻譯本:學會 iOS 遊戲程式設計的 16 堂課─動手撰寫你的第一隻 iPhone 遊戲

8. 書,Beginning iOS 5 Games Development: Using the iOS SDK for iPad, iPhone and iPod touch,APress 2011年11月出版,作者Lucas Jordan。

這本不是講cocos2d,而是在iOS之上寫遊戲。

9. iPhone Game Tutorials上有非常多介紹cocos2d寫遊戲的文章,有入門的也有進階的。

10. Cocos2D Podcast,主持人為Mohammad Azam與Steffen Itterheim。

11. 到YouTube上找找cocos2d教學影片。

12. 其他,請留言告訴我。


除了cocos2d外,還有其他遊戲引擎可選,譬如Unity3DCoronaSIO2OolongTorqueBork3DShiVa 3DGalaxySparrowIrrlichtGame SaladUnreal Development KitPixelwave、等等,令人眼花撩亂,有2d的有3d的,有免費的有要錢的,有些只支援單一平台、有些支援多重平台。

挑選iOS遊戲引擎時,可以參考以下資料:

1. iPhone Game Engine Comparison – Open Source
2. The Commercial iPhone Game Engine Comparison (3D and 2D)
3. Review of 3D Engines for the iPhone
4. Thoughts on Unity3D
5. Best iPhone Game Frameworks
6. Cocos2d PodcastGame Engines and Frameworks as Alternatives to Cocos2d
7. Mobile Game Engines,根據你設定的需求找出合適的遊戲引擎。
8.  Steffen Itterheim的文章,The Game Engine Dating Guide: How to Pick up an Engine for Single Developers,講解如何挑選遊戲引擎。
9. Battle of the Lua Game Engines: Corona vs. Gideros vs. LÖVE vs. Moai
10. 其他。

以上資料僅供參考,請注意文章的時效性,某些遊戲引擎可能已經有了長足的進展,某些遊戲引擎可能逐漸式微。