青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 132  文章 - 51  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(7)

隨筆分類(lèi)

隨筆檔案

文章分類(lèi)

文章檔案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

原文地址:子龍山人教程 http://www.cnblogs.com/zilongshanren/archive/2012/04/28/2473282.html



原文鏈接地址:http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started

教程截圖:

    Cocos2D是一個(gè)非常棒而且非常容易使用的游戲框架,但是,由于它是采用objc寫(xiě)的,所以你只能使用它來(lái)開(kāi)發(fā)ios和mac下面的游戲。

    假如你可以使用和cocos2d相似的api來(lái)開(kāi)發(fā)android上面的游戲,那豈不是更爽?這樣,你就可以毫不費(fèi)勁地?cái)U(kuò)大你的游戲的市場(chǎng)份額(android的用戶(hù)數(shù)量巨大啊!)

    好吧,確實(shí)存在這么一個(gè)游戲框架,她就是cocos2d-x!cocos2d-x采用c++把cocos2d的api重新移植了一遍,,除了一些語(yǔ)法細(xì)節(jié)上面的差異之外,你可以使用幾乎一樣的api來(lái)編寫(xiě)游戲。正是由于它是c++寫(xiě)的,所以可以跨多個(gè)平臺(tái),從ios到android、windows、再到linux、bada等!

    在這篇教程里面,你將學(xué)習(xí)到,如何使用cocos2d-x和c++來(lái)編寫(xiě)一個(gè)能夠同時(shí)在ios和android設(shè)備上面跑的“Hello World”程序。

    而且,過(guò)兩天,我會(huì)再出一篇教程,向大家展示一個(gè)具體的游戲例子---一個(gè)跨平臺(tái)的太空射擊游戲!

    好了,帶上你的iPhone和Android設(shè)備,讓我們開(kāi)始吧!

Hello, Cocos2D-X for iOS!

    在繼續(xù)之前,確保你先下載最新版本的cocos2d-x

    隨便在你的硬盤(pán)的某個(gè)位置上面解壓就可以了。注意,這個(gè)解壓出來(lái)的文件夾的完整路徑名,我們之后會(huì)用一個(gè)統(tǒng)一的別名 $COCOS2DX_HOME來(lái)指代。

    現(xiàn)在,你已經(jīng)下載到源碼了,讓我們來(lái)安裝項(xiàng)目模板吧!你可以先cd到$COCOS2DX_HOME這個(gè)目錄(譯者:指你剛剛解壓縮代碼的存放路徑)下面去。在安裝模板之前,先退出Xcode,然后打開(kāi)一個(gè)終端,并輸入下面的命令:

cd $COCOS2DX_HOME sudo ./install-templates-xcode.sh -u
注意: 在上面所示的代碼中,你不能直接輸入$COCOS2DX_HOME,而要輸入實(shí)際的路徑。如果你直接輸入了$COCOS2DX_HOME是不會(huì)有任何反應(yīng)的。當(dāng)然,你可以參考我寫(xiě)的《如何在macos下面配置集成ios和android游戲教程》,里面有講到環(huán)境變量的配置。大概方法就是打開(kāi)~/.bash_profile文件,然后用export來(lái)定義環(huán)境變量就ok了。

    你可能會(huì)被要求輸入管理員密碼(加了-u應(yīng)該是不需要輸入密碼的,不加-u就需要輸入),之后的過(guò)程就非常簡(jiǎn)單了。在模板安裝好之后,啟動(dòng)xcode,然后創(chuàng)建一個(gè)新的項(xiàng)目。這時(shí),你可以在項(xiàng)目模板對(duì)話(huà)框中看到有cocos2d-x的模板了。不用擔(dān)心,cocos2d-x的模板與cocos2d的模板并不會(huì)有沖突,因此,你還是可以創(chuàng)建cocos2d的項(xiàng)目。

    讓我們來(lái)試一下新模板吧!打開(kāi)Xcode,然后創(chuàng)建一個(gè)新的工程,選擇 iOS\cocos2d-x\cocos2dx模板,如下圖所示:

    把工程例句為Cocos2DxFirstIosSample,然后保存。

   現(xiàn)在,編譯并運(yùn)行,你將會(huì)看到cocos2d-x的hello wolrd程序跑起來(lái)了,如下圖所示:

    非常簡(jiǎn)單,不是嗎?這時(shí),你可以看看xcode里面的文件,特別是Classes\HelloWorldScene.H和Classes\HelloWorldScene.cpp。如果你也熟悉cocos2d的話(huà),那么里面的代碼看起來(lái)會(huì)覺(jué)得非常熟悉---幾乎完全一樣的cocos2d API,只是語(yǔ)言是c++而已!

配置cocos2d-x的eclipse開(kāi)發(fā)環(huán)境

    現(xiàn)在我們已經(jīng)完成了Xcode4的hello world程序了,是時(shí)候看看如何使用eclipse來(lái)配置android 的cocos2d-x開(kāi)發(fā)環(huán)境了。

    這篇教程假設(shè)你有一個(gè)可以進(jìn)行Android開(kāi)發(fā)的標(biāo)準(zhǔn)開(kāi)發(fā)環(huán)境。如果你還沒(méi)有的話(huà),可以參考這篇教程來(lái)配置,它里面提供了詳細(xì)的過(guò)程,教你如何一步步配置好一個(gè)標(biāo)準(zhǔn)的eclipse android開(kāi)發(fā)環(huán)境。

   但是,請(qǐng)等一下。一個(gè)標(biāo)準(zhǔn)的eclipse android開(kāi)發(fā)環(huán)境是專(zhuān)為java開(kāi)發(fā)設(shè)計(jì)的,而cocos2d-x卻是基于c++來(lái)做開(kāi)發(fā)的!

    不用擔(dān)心,eclipse已經(jīng)有10年的歷史了,它有許多插件可以支持其它語(yǔ)言的開(kāi)發(fā),這當(dāng)然就包括c/C++語(yǔ)言的插件啦。先讓我們來(lái)安裝這個(gè)插件吧。打開(kāi)eclipse,然后執(zhí)行以下步驟:

  • 從Eclipse IDE的主工具欄上面,選擇Help/Install New Software。
  • 打開(kāi)Work With復(fù)選框,并從中選擇一個(gè)包含你的eclipse版本名稱(chēng)的項(xiàng)(如果是最新版的eclipse的話(huà),就選擇indigo)
  • 在插件樹(shù)里面找到Programming Languages (只有當(dāng)你復(fù)選中“Group items by category”時(shí),你才可以看到插件樹(shù)。)并打開(kāi)它.
  • 選擇CDT插件,然后安裝下列組件。(但是,請(qǐng)注意,你如果直接就點(diǎn)擊C/C++ Development Tools的話(huà),你是得不到下圖所示的樣子的,你還需要在“Mobile Development”里面去查找相關(guān)的項(xiàng))(譯者:我沒(méi)找了,直接就選擇了C/C++ Development Tools就Next安裝了)

 點(diǎn)擊next來(lái)完成向?qū)В缓蟮却M件下載并安裝。現(xiàn)在,你可以使用eclipse來(lái)開(kāi)發(fā)C/C++項(xiàng)目了!

Setup the Android NDK (Native Development Toolkit)

 本來(lái),android開(kāi)發(fā)只能采用java,而且現(xiàn)在市場(chǎng)上面大部分的app也是采用java寫(xiě)的。

    然而,現(xiàn)在你還可以通過(guò)Native Development Toolkit (NDK),使用C/C++來(lái)編寫(xiě)android程序。這種編程方式是由Google在2009年6月份引入的,它允許一些組件采用C/C++來(lái)編寫(xiě),然后通過(guò)標(biāo)準(zhǔn)的Java Native Interface (JNI)來(lái)調(diào)用。

安裝NDK的過(guò)程非常簡(jiǎn)單:

  • 下載最新版本的NDK。 here (注意選擇 MacOSX 平臺(tái)).
  • 解壓tar.bz2 到任意目錄.之后,我會(huì)使用$NDKROOT來(lái)指定這個(gè)解壓縮后的目錄。

    NDK給Android開(kāi)發(fā)帶來(lái)了全套的C/C++編譯工具集,可以使用GCC4.4.3來(lái)編譯來(lái)鏈接并且可以構(gòu)建即時(shí)安裝的APK包。

   有了這套編譯工具集,我們就可以在eclipse里面集成一些外部的C/C++庫(kù)(比如cocos2d-x)。這些庫(kù)被編譯成動(dòng)態(tài)庫(kù),然后通過(guò)JNI(Java Native Interface)與Java Android體系程序進(jìn)行交互。

這些編譯工具集可以采用下面兩種方式使用 :

  • 獨(dú)立模式: 直接在你的makefile中使用 arm-linux-androideabi-g++. 這種方式會(huì)增加你的項(xiàng)目的復(fù)雜性和可維護(hù)性。我推薦你不要使用這種方式。
  • 集成模式: 使用$NDKROOT/ndk-build shell 工具,它是一種高度可定制的makefile,專(zhuān)門(mén)為NDK庫(kù)所設(shè)計(jì)的。這也是我們這篇教程所采用的方式。

 

解釋JNI和NDK可能會(huì)花費(fèi)大量時(shí)間,而且也超出了本教程的討論范圍。現(xiàn)在網(wǎng)絡(luò)上有許多關(guān)于JNI的資源。這里還推薦一本書(shū),它也討論了JNI這個(gè)主題。

    如果你需要更多關(guān)于NDK的信息,這里推薦一本非常好的書(shū),它里面涵蓋了使用C/C++進(jìn)行NDK開(kāi)發(fā),書(shū)名是: Android Native Development Kit Beginner’s Guide。這本書(shū)覆蓋了NDK編程的方方面面,可謂是“從入門(mén)到精通”,而且NDK本身也帶有非常詳細(xì)的文檔,在$NDKROOT/docs路徑下面。

Hello, Cocos2D-X for Android!

    現(xiàn)在,讓我們?cè)贏ndriod平臺(tái)上面來(lái)開(kāi)發(fā)一個(gè)“Hello,World”程序吧,就像我們之前在ios平臺(tái)上的程序一樣。

    我們需要通過(guò)命令行來(lái)完成工作,因?yàn)槟壳斑€沒(méi)有在Eclipse IDE里面集成cocos2d-x的模板。

    在$COCOS2DX_HOME目錄下面包含一個(gè)shell腳本,叫做create-android-project.sh,我們可能通過(guò)它來(lái)創(chuàng)建android項(xiàng)目。但是,在運(yùn)行腳本之前,我們需要在腳本文件的頂部做一些修改: 

# set environment paramters NDK_ROOT_LOCAL="/home/laschweinski/android/android-ndk-r5" ANDROID_SDK_ROOT_LOCAL="/home/laschweinski/android/android-sdk-linux_86"

 

修改上面這些行,把NDK_ROOT_LOCAL指向你安裝Android NDK ($NDKROOT)的位置,同時(shí)把ANDROID_SDK_ROOT_LOCAL指向你安裝Android SDK位置。(譯者:這里其實(shí)可以不用修改,讀者可以打開(kāi)這個(gè)sh腳本去看看為什么。如果之前看過(guò)我的配置教程,里面有配置一個(gè)全局的NDK_ROOT和ANDROID_SDK_ROOT。這個(gè)腳本在判斷有全局的環(huán)境變量存在的時(shí)候,會(huì)直接替代NDK_ROOT_LOCAL和ANDROID_SDK_ROOT_LOCAL。)

    現(xiàn)在,可以運(yùn)行create-android-project.sh腳本了,然后你會(huì)接收到一系列的提示輸入。我們將一個(gè)個(gè)向您解釋一下:

  1. 第一個(gè)提示要求你“Input package path”。這個(gè)包名會(huì)給后面的java代碼使用。你可以使用你的域名反過(guò)來(lái)寫(xiě),類(lèi)似寫(xiě)ios的bundle ID。比如com.yourdomain.samplecocos2dxandroid ,記住實(shí)際輸入的時(shí)候要替換掉“com.yourdomain”。
  2. 接下來(lái),你會(huì)得到一系列可用的Android API和它們的id號(hào)。這個(gè)具體取決于你的機(jī)器上面安裝的Andriod API的情況。
  3. 最后,你需要提供項(xiàng)目的名稱(chēng),在這里取名為samplecocos2dxandroid

命令行的輸出大致如下:

 

復(fù)制代碼
bash-$ ./create-android-project.sh Input package path. For example: org.cocos2dx.example org.jymc.samplecocos2dxandroid . . . Available Android targets: ---------- . . . ---------- id: 9 or "Google Inc.:Google APIs:15"      Name: Google APIs      Type: Add-On      Vendor: Google Inc.      Revision: 1      Description: Android + Google APIs      Based on Android 4.0.3 (API level 15) . . . input target id: 9 input your project name: samplecocos2dxandroid
Created project directory:
/Users/jymen/development/cocos2dx/samplecocos2dxandroid . . . Added file /Users/jymen/development/cocos2dx/samplecocos2dxandroid/AndroidManifest.xml Added file /Users/jymen/development/cocos2dx/samplecocos2dxandroid/build.xml Added file /Users/jymen/development/cocos2dx/samplecocos2dxandroid/proguard.cfg bash-$
復(fù)制代碼

 注意“Created project directory:”這一行是腳本文件最后輸出來(lái)的,這個(gè)輸出的路徑也就是你的Andriod項(xiàng)目被創(chuàng)建好的路徑。我這里指的是/Users/jymen/development/cocos2dx/samplecocos2dxandroid,如上圖所示:

Note: Do not try to move the project from that location to a different location. At least one of the scripts we’ll work with in the next section will not work if you do.

構(gòu)建工程

    這里有兩個(gè)步驟來(lái)構(gòu)建項(xiàng)目----首先通過(guò)命令行腳本編譯c++代碼,然后通過(guò)ecipse來(lái)編譯java代碼。

    為了編譯c++代碼,我們需要切換到$PROJECT_HOME/android文件夾下面去,然后在終端里面輸入下列命令:

./build_native.sh

你應(yīng)該會(huì)看到下面類(lèi)似的輸出:

復(fù)制代碼
Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver Gdbsetup       : libs/armeabi/gdb.setup Compile++ thumb  : cocos2d <= CCConfiguration.cpp Compile++ thumb  : cocos2d <= CCDrawingPrimitives.cpp : : : Compile++ thumb  : cocos2d <= CCTileMapAtlas.cpp Compile++ thumb  : cocos2d <= CCTouchDispatcher.cpp Compile++ thumb  : cocos2d <= CCTouchHandler.cpp Prebuilt       : libstlport_static.a <= /sources/cxx-stl/stlport/libs/armeabi/ SharedLibrary  : libcocos2d.so Install        : libcocos2d.so => libs/armeabi/libcocos2d.so Compile++ thumb  : cocosdenshion <= SimpleAudioEngine.cpp Compile++ thumb  : cocosdenshion <= SimpleAudioEngineJni.cpp SharedLibrary  : libcocosdenshion.so Install        : libcocosdenshion.so => libs/armeabi/libcocosdenshion.so Compile++ thumb  : game_logic <= AppDelegate.cpp Compile++ thumb  : game_logic <= HelloWorldScene.cpp SharedLibrary  : libgame_logic.so Install        : libgame_logic.so => libs/armeabi/libgame_logic.so Compile++ thumb  : game <= main.cpp SharedLibrary  : libgame.so Install        : libgame.so => libs/armeabi/libgame.so
復(fù)制代碼

 這里就是在編譯cocos2d-x庫(kù)和你的項(xiàng)目里面的c++文件。

    為了編譯java代碼,我們需要?jiǎng)?chuàng)建一個(gè)eclipse工程---這可比命令行要方便多了。:)

    打開(kāi)Eclipse,然后他吃軟飯F(tuán)ile\New\Other,選擇Android\Android Project,然后點(diǎn)擊Next,在Project Name里面輸入samplecocos2dxandroid ,然后選擇 Create project from existing source,然后瀏覽到$PROJECT_HOME/android文件夾,如下圖所示:

 

  點(diǎn)擊Next,選擇一個(gè) Android version to target(這里選擇的是3.2,你可以選擇任何一個(gè))

點(diǎn)擊Finish,好了,現(xiàn)在你有一個(gè)工程了!

在左邊的樹(shù)上右擊項(xiàng)目,選擇Run As\Android Application,然后AVD (Android Virtual Device)就會(huì)啟動(dòng),然后就會(huì)跑出來(lái)Hello, Cocos2D-X項(xiàng)目了!

 

 注意:如果程序沒(méi)有啟動(dòng)的話(huà),你需要按照提示去創(chuàng)建一個(gè)AVD來(lái)測(cè)試。更多的細(xì)節(jié),請(qǐng)參考Getting Started with Android Development 這篇教程。

    恭喜你,你現(xiàn)在有一個(gè)“HelloWorld”項(xiàng)目可以同時(shí)跑在iosandroid上面了!

 

Eclipse里面定一個(gè)結(jié)java/c++的工程

 

    通過(guò)命令腳本來(lái)編譯c++代碼,完了之后用eclipse來(lái)編譯java代碼,這種來(lái)回切換的做法非常笨重。如果全部可以用eclipse來(lái)完成的話(huà),那么生活會(huì)更簡(jiǎn)單一些。

    幸運(yùn)的是,我們可以告訴eclipse,我們的android項(xiàng)目是一個(gè)集成java/c++的跨語(yǔ)言項(xiàng)目!

   為此,我們?cè)谧筮叺捻?xiàng)目樹(shù)上選擇samplecocos2dxandroid,然后從菜單里面選擇File\New\Other,然后從對(duì)話(huà)框里面選擇C/C++\Convert to a C/C++ Project,如下所示:

 

點(diǎn)擊Next。在下一個(gè)屏幕里面,選中你的項(xiàng)目,然后選擇c++單選按鈕,然后為Project type指定Makefile project\Other Toolchain,如下所示:

  點(diǎn)擊完成。這時(shí)eclipse會(huì)詢(xún)問(wèn)你是否打開(kāi)C/C++視圖,當(dāng)對(duì)話(huà)框出現(xiàn)的時(shí)候,選擇NO。

   接下來(lái)的步驟就是修改項(xiàng)目設(shè)置,指定如何運(yùn)行我們的make命令。在左邊的項(xiàng)目樹(shù)上,右擊samplecocos2dxandroid工程,選擇Properties,然后選擇C/C++ build

取消“Use default build command”復(fù)選框,然后在build文本框中輸入下面的命令:

bash ${workspace_loc:/samplecocos2dxandroid}/build_native.sh NDK_DEBUG=1 V=1

點(diǎn)擊Apply,然后點(diǎn)OK。

   回到ecipse,從主菜單中選擇Project\Build All,這時(shí)你可以在ecipse的控制臺(tái)輸出中看到c++ make在運(yùn)行。

我們?nèi)匀挥幸恍┚嫘枰鉀Q。想知道我是什么意思嗎,你打開(kāi)jni/helloworld/main.cpp,這里你會(huì)看到一系列的警告,如下所示:

這些警告之所以會(huì)出現(xiàn),是因?yàn)槲覀儧](méi)有配置正確的c++包含路徑。為了解決它,我們右擊samplecocos2dxandroid工程,然后選擇Properties\C/C++ General\Path and Symbols\GNU C++。

   選擇Add…按鈕來(lái)選擇下面的目錄,之后點(diǎn)擊Apply和OK。

$(NDKROOT)/platforms/android-9/arch-arm/usr/include $(COCOS2DX_HOME)/cocos2dx/include

注意: 不用忘了使用實(shí)際的路徑來(lái)替換掉$(NDKROOT) 和$(COCOS2DX_HOME)。

 

 點(diǎn)擊Apply,這時(shí)會(huì)提示你是否重建索引。直接點(diǎn)擊yes繼續(xù)就可以了。

   現(xiàn)在,你再看看main.cpp,你會(huì)看到大部分警告已經(jīng)消失了。

 但是,AppDelegate.h文件還是找不到。這是因?yàn)锳ppDelegate.h是在$PROJECT_HOME\Classes文件夾下面。這個(gè)文件夾對(duì)我們來(lái)說(shuō)非常重要,因?yàn)樗宋覀児こ汤锩娴目梢浦驳腸++類(lèi),比如HelloWorldScene.cpp等。

    當(dāng)我們創(chuàng)建eclipse項(xiàng)目的時(shí)候,我們必須選擇$PROJECT_HOME\android文件夾,因?yàn)閑clipse需要一個(gè)AndroidManifest.xml文件。但是,這樣的話(huà),我們的工程就不包括關(guān)鍵的“Classes”文件夾了,這也是為什么我們會(huì)得到這么多警告的原因。

   讓我們來(lái)修正它吧。右擊samplecocos2dxandroid項(xiàng)目,選擇Properties\C/C++ General\Paths and Symbols\Source location。點(diǎn)擊Link Folder,然后復(fù)選中Link to a folder in the file system,接著瀏覽到$PROJECT_HOME文件夾,并指向Classes目錄,最后點(diǎn)Apply和OK。

你現(xiàn)在可以在文件樹(shù)里面看到Classes目錄了,而且在main.cpp里面的#include “AppDelegate.h”警告也應(yīng)該消失了。

   Eclipse工程里面還會(huì)有許多警告,但是,這是因?yàn)閑clipse對(duì)于解析c++頭文件的能力并不強(qiáng)大。為了消除這些警告,我們又需要設(shè)置一下項(xiàng)目設(shè)置。(右鍵點(diǎn)工程,然后選擇Properties),把Code Analysis部分的warnings關(guān)閉,如下圖所示:

 然后點(diǎn)擊Apply和OK,這時(shí),你就得到一個(gè)工程可以在eclipse里面進(jìn)行編輯了。

 

What About the Java Code?

    這時(shí)你在eclipse里面再找找看,你會(huì)在src和gen目錄下面找到一些java代碼,你肯定很好奇這些代碼是干嗎用的。

   Andriod開(kāi)發(fā)采用的主要語(yǔ)言是java,這個(gè)項(xiàng)目模板已經(jīng)為我們創(chuàng)建了一些java框架代碼,用來(lái)加載c++編寫(xiě)好的動(dòng)態(tài)庫(kù)。

   一般情況下,你是不需要修改這些java代碼的,但是,還是讓我們來(lái)看看src\com\xxx\samplecosos2dxandroid\samplecocos2dandroid.java這個(gè)類(lèi)。

   這個(gè)類(lèi)包含了主Android Activity類(lèi),當(dāng)應(yīng)用程序啟動(dòng)的時(shí)候會(huì)加載。它首先通過(guò)NDK來(lái)請(qǐng)求編譯好的c++動(dòng)態(tài)庫(kù)。(如果采用的是最新版的coocs2dx的話(huà),下面只會(huì)加載一個(gè)game庫(kù))

 

 由于類(lèi)是從Cocos2dxActivity所派生,在后臺(tái)cocos2d-x會(huì)把控制權(quán)移交給c++的AppDelegate 的initInstance方法來(lái)處理,最后applicationDidFinishLAunching方法也就被執(zhí)行起來(lái)了。

    因此,再重申一遍,java代碼只是一些包裝代碼,大部分情況下我們都不要去修改它,因?yàn)槲覀兊挠螒蜻壿嬍怯蒫++寫(xiě)的。

So to repeat, the Java code just contains wrapper code that you will rarely need to change, since all the game’s logic will be inside the C++ code.

連接andriodios項(xiàng)結(jié)構(gòu)

    現(xiàn)在,我們有兩個(gè)cocos2d-x的項(xiàng)目了,一個(gè)是ios下面的,一個(gè)是andriod下面的。我們的目標(biāo)是讓兩個(gè)工程共享同樣的目錄,這樣就可以使用同樣的c++文件了。

    我們兩個(gè)項(xiàng)目里面,都有一個(gè)文件夾叫做“Classes”,它包含了我們的可移植的游戲代碼(如下圖:android的在左邊,ios的在右邊)

  如果你仔細(xì)看看eclipse和xcode里面的Classes目錄,你會(huì)發(fā)現(xiàn)這些c++文件完全相等。因此,我們需要做的就是讓兩個(gè)項(xiàng)目指向同一個(gè)文件夾就ok了!

 

    為了實(shí)現(xiàn)這個(gè)目標(biāo),在xcode里面打開(kāi)Cocos2DxFirstIosSample項(xiàng)目。選擇Classes分組,然后點(diǎn)擊Delete,選擇“Move to Trash”;

    接下來(lái),右鍵Project Navigator,選擇“New Group”,然后重命名為Classes。點(diǎn)鍵Classes,點(diǎn)擊Add Files。然后選擇$PROJECT_HOME\Classes目錄,同時(shí)確保“Copy items into destination group’s folder”沒(méi)有被選中!

 然后clean并rebuild xcode項(xiàng)目,并運(yùn)行一下,確保一切ok。

   恭喜,現(xiàn)在基礎(chǔ)配置全部弄好了!你可以試著在eclipse里面修改,xcode這邊運(yùn)行,或者xcode里面修改,eclipse里面運(yùn)行了。

什么時(shí)候使用 Xcode, 什么時(shí)候使用Eclipse?

    現(xiàn)在,你有兩個(gè)項(xiàng)目了,那么問(wèn)題馬上就出來(lái)了,我們到底什么時(shí)候該使用哪一個(gè)呢?

    使用cocos2d-x通常的開(kāi)發(fā)策略是,首先在ios上面通過(guò)xcode來(lái)測(cè)試,確認(rèn)沒(méi)問(wèn)題后,再通過(guò)eclipse來(lái)測(cè)試。只需要在心里記住下面幾點(diǎn)就行:

  1. 經(jīng)常測(cè)試.開(kāi)發(fā)完一個(gè)小功能之后,就應(yīng)該andriod上面測(cè)試看行不行。這樣話(huà),就不至于遇到問(wèn)題找不到了。 
  2. 在多個(gè)設(shè)備上面測(cè)試: 現(xiàn)在市場(chǎng)上面有大量的android設(shè)備,而且它們的差別很細(xì)微,所以,你要盡可能多地測(cè)試多種不同型號(hào)的設(shè)備。

當(dāng)然,你也可以先在andriod上面測(cè)試,然后再在ios上面測(cè)試。但是這樣肯定會(huì)降低你的生產(chǎn)率。因?yàn)閤code比eclipse反應(yīng)速度更快,而ios模擬器比android的模擬器的啟動(dòng)速度也要快一些。

調(diào)試技巧

在ios上面調(diào)試cocos2d-x和cocos2d的方法差不多,這里也沒(méi)什么多講的。

然而,對(duì)于Android,這里有幾點(diǎn)需要注意下。

   當(dāng)使用NDK來(lái)調(diào)試的時(shí)候,一個(gè)“服務(wù)端的”gdb和gdbcontext被ndk-build shell腳本塞到APk里面去了。這個(gè)遠(yuǎn)程的gdb調(diào)試器可以與任何gdb兼容的客戶(hù)端進(jìn)行通信。

   Eclipse里面最好的gdb agent就是 NVidia debug manager plugin,但是安裝這個(gè)插件不在本教程的討論范圍之內(nèi)。

注意: 如果你想安裝NVidia Debug Manager plugin,你首先到這個(gè)頁(yè)面下載完整的Tegra Android開(kāi)發(fā)包,即便你可能現(xiàn)在并不需要它。然后,安裝Tegra Developer,它會(huì)提示你安裝哪些項(xiàng),然后你可以選擇NVidia Debug Manager plugin這個(gè)插件了。當(dāng)你安裝完之后,它并沒(méi)有包插件安裝到eclipse里面去,而是把zip文件放在你的硬盤(pán)的某個(gè)位置,你可以參考這個(gè)pdf文檔來(lái)進(jìn)行安裝。

    我發(fā)現(xiàn)在一些物理設(shè)備(比如Samsumg Galaxy S),remote debugger老是啟動(dòng)不了,但是使用AVD就可以正常啟動(dòng)。

   為了啟動(dòng)一個(gè)debug會(huì)話(huà),你可以選擇你的項(xiàng)目,然后右擊Debug As Android NDK application,如下圖所示: 

 

請(qǐng)注意,只有你安裝了NVidia debug manager plugin,你才會(huì)在右擊的時(shí)候看到Android NDK Application這個(gè)選項(xiàng)。

   你可以在一行代碼上面雙擊來(lái)設(shè)置一個(gè)斷點(diǎn),如下所示:

 

 當(dāng)斷點(diǎn)到達(dá)的時(shí)候,它將會(huì)停留在斷點(diǎn)所在行:

 悲催的是,使用gdb來(lái)調(diào)試android有時(shí)候并不管用,所以,你可能需要添加一些額外的tracing系統(tǒng)。想知道更多的信息,請(qǐng)聯(lián)系我,我將與大家分享這些tips。

何去何從?

    恭喜你,你現(xiàn)在可以使用cocos2d-x來(lái)開(kāi)發(fā)iphone和android下面的游戲了。

   請(qǐng)耐心等待我的第二篇教程吧,它將帶你一起開(kāi)發(fā)一個(gè)跨平臺(tái)的太空射擊游戲,當(dāng)然是使用cocos2d-x啦!

   如果你遇到什么問(wèn)題,或者有什么意見(jiàn)或建議,歡迎留言!

   更多精彩教程,請(qǐng)關(guān)注泰然首頁(yè):)



posted on 2012-10-24 09:29 風(fēng)輕云淡 閱讀(6249) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): cocos2d
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产麻豆日韩| 亚洲高清免费| 国产欧美日韩三级| 国产一区美女| 亚洲成色777777女色窝| 亚洲国产精品一区二区尤物区| 亚洲电影在线免费观看| 亚洲国产小视频| 日韩一级黄色av| 亚洲免费视频网站| 久久九九电影| 欧美国产视频一区二区| 日韩午夜在线电影| 亚洲一区网站| 久久人人精品| 欧美日韩国产999| 国产精品一级二级三级| 韩国av一区二区| 亚洲日本va午夜在线电影| 在线亚洲一区| 久久久久**毛片大全| 农村妇女精品| 一区二区动漫| 久久精品国产一区二区三区| 欧美1区2区视频| 欧美视频不卡| 激情国产一区二区| 99精品国产福利在线观看免费 | 亚洲大胆女人| 99精品热6080yy久久| 欧美一级黄色网| 欧美粗暴jizz性欧美20| 国产精品美女久久久久久2018| 国产主播一区| 一区二区三区高清不卡| 久久精品视频在线播放| 亚洲国产毛片完整版| 亚洲欧美日韩成人| 麻豆乱码国产一区二区三区| 国产精品成人播放| 在线欧美影院| 欧美一区二区久久久| 亚洲黄色天堂| 久久成人一区| 欧美午夜不卡| 亚洲国产天堂久久综合网| 午夜精品一区二区三区电影天堂| 欧美成人亚洲成人| 亚洲综合国产| 欧美激情精品久久久久久蜜臀| 国产伦精品一区二区| 日韩亚洲欧美综合| 蜜桃av一区| 亚洲欧美激情视频| 欧美日韩国产bt| 亚洲国产日韩欧美在线图片| 亚洲欧美在线免费| 91久久亚洲| 久久久精品动漫| 国产女精品视频网站免费| aa级大片欧美三级| 欧美成年人在线观看| 亚洲中午字幕| 欧美日韩在线观看一区二区| 在线看视频不卡| 久久久99免费视频| 亚洲一区二区三区国产| 欧美日韩免费在线观看| 亚洲欧洲视频在线| 欧美14一18处毛片| 久久国产精品久久久久久久久久 | 日韩视频一区二区三区| 裸体一区二区三区| 精品不卡在线| 久久成人免费网| 亚洲一区二区日本| 欧美先锋影音| 宅男精品视频| 亚洲六月丁香色婷婷综合久久| 久久综合伊人77777| 今天的高清视频免费播放成人 | 亚洲免费一级电影| 欧美丝袜一区二区| 中日韩男男gay无套| 亚洲日本黄色| 欧美久久久久久久| 亚洲乱码久久| 亚洲人午夜精品| 欧美极品色图| 日韩视频精品在线观看| 亚洲国产成人av在线| 蘑菇福利视频一区播放| 亚洲国产影院| 亚洲国产精品一区| 久久夜色精品国产噜噜av| 欧美一区永久视频免费观看| 国产网站欧美日韩免费精品在线观看| 午夜精品国产| 午夜日韩激情| 国产一区二区三区在线观看精品 | 国产精品高潮视频| 午夜亚洲一区| 欧美亚洲综合久久| 狠久久av成人天堂| 欧美电影免费观看大全| 美女国产精品| 日韩午夜在线播放| 国产精品99久久久久久人| 国产精品热久久久久夜色精品三区| 亚洲欧美国产高清va在线播| 亚洲综合导航| 狠狠综合久久av一区二区老牛| 麻豆成人在线| 欧美国产日韩一区二区在线观看| 日韩网站免费观看| 在线亚洲免费视频| 国产一区二区成人| 欧美sm视频| 欧美日本免费| 久久成人免费视频| 久久一区二区视频| 一区二区三区欧美在线| 亚洲淫性视频| 亚洲第一页中文字幕| 亚洲人成人77777线观看| 国产精品久久久一本精品| 久久久99精品免费观看不卡| 免费不卡在线视频| 亚洲深夜福利| 欧美在线视频二区| 亚洲精品日韩一| 亚洲在线网站| 亚洲黄色大片| 亚洲一区二区三区视频播放| 精品成人在线视频| 亚洲美女视频网| 国内在线观看一区二区三区| 亚洲欧洲美洲综合色网| 国产日本欧美一区二区| 亚洲福利视频二区| 国产精品日韩二区| 欧美激情片在线观看| 国产精品日本精品| 亚洲高清激情| 国产欧美69| 91久久线看在观草草青青| 国产噜噜噜噜噜久久久久久久久| 欧美黄色一级视频| 国产乱码精品一区二区三区五月婷 | 亚洲美女毛片| 欧美一区二区网站| 一区二区三区视频观看| 久久久高清一区二区三区| 亚洲视屏在线播放| 久久综合亚州| 久久精品99国产精品酒店日本| 欧美高清视频一区二区| 久久国产综合精品| 欧美日韩一区三区| 欧美承认网站| 国产亚洲精品久久久久婷婷瑜伽| 亚洲欧洲日产国产综合网| 激情综合视频| 亚洲免费视频一区二区| 一区二区日韩伦理片| 久久天天躁夜夜躁狠狠躁2022 | 亚洲电影免费在线观看| 国产性猛交xxxx免费看久久| 日韩一级裸体免费视频| 亚洲国产免费看| 久久99伊人| 欧美专区日韩视频| 欧美新色视频| 亚洲免费大片| 亚洲区一区二区三区| 久久久免费精品| 久久久7777| 国产目拍亚洲精品99久久精品| 日韩视频国产视频| 亚洲精品少妇30p| 麻豆精品在线播放| 老司机精品视频网站| 国产无一区二区| 午夜精品久久久久久99热| 亚洲欧美日韩综合| 欧美日韩在线看| aa日韩免费精品视频一| 99综合在线| 欧美极品aⅴ影院| 亚洲国产老妈| 亚洲乱亚洲高清| 欧美精品日韩三级| 91久久国产精品91久久性色| 亚洲欧洲在线播放| 牛夜精品久久久久久久99黑人| 欧美成人午夜影院| 亚洲黄色免费| 欧美激情一区二区三区| 亚洲国产福利在线| 亚洲日韩视频|