知易遊戲開發教程cocos2d-x移植版001

原文:http://www.cnblogs.com/cocos2d-x/archive/2012/02/27/2370167.html


前言

知易的cocos2d-iphone遊戲開發教程幫助不少人開始了遊戲開發之旅,我們由衷地感謝他。這套教程已經發表了一年多時間,在這段時間裏,隨着cocos2d-iphone的升級,接口發生了不少變動。在我們這些用慣了C++的人眼裏,ObjC的代碼看上去總是怪怪的。所以我將知易的教程向我使用的cocos2d-1.0.1-x-0.11.0做了一次移植,希望對學習cocos2d-x的朋友有所幫助。

誰也不知道cocos2d-x的接口何時會發生變動,如果本教程的代碼在你使用的版本上遇到問題,你可以到 http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Upgrade_Guides 查看升級指南。

本文說不上是原創,我只是將知易教程中的cocos2d-iphone代碼替換成當前可用的cocos2d-x代碼,就算是移植吧。我儘量保持原文結構,望知易不要介意。

安裝cocos2d-x

無論是什麼引擎或者什麼庫,我都推薦大家從最新的穩定版本開始入手。這個方法幾乎總是對的。訪問 http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download 頁面來獲取最新的cocos2d-x引擎。
我使用的是Microsoft Visual C++ 2010 學習版以及cocos2d-1.0.1-x-0.11.0 這一點以後就不再重複說明了。
官方教程中是通過 build-win32.bat 編譯整個引擎,但運行批處理可能會被個別病毒防禦軟件攔截,我們這裏直接通過VC的IDE環境編譯。
將下載的文件解壓縮到任意目錄,雙擊對應的解決方案(我這裏是cocos2d-win32.vc2010.sln)啓動VC開發環境。然後生成解決方案,對整個工程進行編譯。

待編譯完成後,將HelloWorld設爲啓動項目,運行。

對於那些小倒黴蛋兒,如果演示示例在你的電腦上不能正常運行,你可以訪問 http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Chapter_1_-_How_to_Create_a_New_cocos2d-x_project_on_multi-platforms#15-Portal-for-unlucky-guys 來尋求幫助。

創建你的第一個cocos2d-x應用

完全手動爲項目配置cocos2d-x是非常繁瑣的,好在開發人員爲我們提供了項目模板,你只需要輕輕雙擊install-templates-msvc.bat就可以將他安裝到VC中去。有了這個神兵利器我們就可以開始神奇的cocos2d-x之旅了。
右鍵單擊“解決方案'cocos2d-win32.vc2010'”,選擇“添加 -> 新建項目”


然後在“已安裝的模板”內選擇“Cocos2d-x -> Cocos2d-win32 Application”,並填寫名稱“ZYG001”。存儲位置使用默認的,不要改變,否則模板配置的項目路徑就失效了。


單擊“確定 -> 下一步”,來到cocos2d-x的特性選擇頁面。


根據你的實際需要選擇包含哪些引擎特性。在這裏我們只是想要做個簡單的演示,物理引擎和聲音引擎都是不需要的,所以我們將默認的對勾去掉。

當你點擊Finish按鈕之後,嚮導會自動幫你生成一個簡單的cocos2d-x應用。

雖然他是簡單的,但他是完整的,你只需編譯一下,然後就可以運行,並查看結果了。

對cocos2d-x項目的初步分析

根據上面的截圖可以看出,項目默認分Classes Resources win32三個文件夾。
Classes下存放的是程序的主要源代碼,
Resources下放的是資源文件,
win32目錄下的文件是平臺相關的,99%的情況下不需求變動。
1)主程序入口
打開main.cpp可以看到如下代碼

複製代碼
 1 #include "main.h"
2
3 #include "AppDelegate.h"
4
5 int APIENTRY _tWinMain(HINSTANCE hInstance,
6 HINSTANCE hPrevInstance,
7 LPTSTR lpCmdLine,
8 int nCmdShow)
9 {
10 UNREFERENCED_PARAMETER(hPrevInstance);
11 UNREFERENCED_PARAMETER(lpCmdLine);
12
13 // create the application instance
14 AppDelegate app;
15
16 return cocos2d::CCApplication::sharedApplication().run();
17 }
複製代碼

看起來是不是有點兒像MFC的CWinApp呢?
2)AppDelegate的使用
實際上AppDelegate是從CCApplication派生出來的。作爲初學者,目前只需要注意1個成員函數,那就是applicationDidFinishLaunching。他負責初始化CCDirector並創建第1個CCScene供程序顯示。

複製代碼
 1 bool AppDelegate::applicationDidFinishLaunching()
2 {
3 // initialize director
4 CCDirector *pDirector = CCDirector::sharedDirector();
5 pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView());
6
7 // enable High Resource Mode(2x, such as iphone4) and maintains low resource on other devices.
8 // pDirector->enableRetinaDisplay(true);
9
10 // turn on display FPS
11 pDirector->setDisplayFPS(true);
12
13 // set FPS. the default value is 1.0/60 if you don't call this
14 pDirector->setAnimationInterval(1.0 / 60);
15
16 // create a scene. it's an autorelease object
17 CCScene *pScene = HelloWorld::scene();
18
19 // run
20 pDirector->runWithScene(pScene);
21 return true;
22 }
複製代碼

小結

通過本章內容,我們對cocos2d-x引擎有了一個初步的體驗,從下一章開始,我們將詳細講解該引擎的內部特性和功能。爲了讓大家可以從掌握全局架構逐步深入到熟練細節,我們將從遊戲編程的基本概念開始逐步學習。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章