cocos2d-x 3.0 创建工程

新建工程

https://github.com/chukong/cocos-docs/blob/master/catalog/zh.md

执行以下命令

cd cocos2d-x
./setup.py
source ~/.bash_profile
cocos new KnowledgeMaze -p game.knowledge.maze -l cpp -d ~/x_workspace/

参数解释

  • new后面跟工程名称
  • -p指定android工程使用的包名
  • -l指定编程语言 cpp或者lua
  • -d指定创建到的目录
  • -m指定编译模式 debug或release
  • setup.py 需要指定sdk,ndk,ant 目录,到http://ant.apache.org/bindownload.cgi下载ant,需要指定目录为ant下的bin,下载最新的sdk,ndk。

.bash_profile的内容示例

export NDK_ROOT="/Users/gzty1/adt-bundle-mac-x86_64/ndk"

# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=/Users/gzty1/cocos2d-x/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH

# Add environment variable ANDROID_SDK_ROOT for cocos2d-x
export ANDROID_SDK_ROOT=/Users/gzty1/adt-bundle-mac-x86_64/sdk
export PATH=$ANDROID_SDK_ROOT:$PATH
export PATH=$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH

# Add environment variable ANT_ROOT for cocos2d-x
export ANT_ROOT=/Users/gzty1/adt-bundle-mac-x86_64/ant/bin
export PATH=$ANT_ROOT:$PATH

编译并运行工程

执行以下命令

cocos run -s  ~/x_workspace/KnowledgeMaze -p ios

参数解释

  • run改为compile 只编译
  • -s指定工程根目录
  • -p指定平台 ios android win32 mac linux

编译并运行android工程

把cocos2d-x/cocos/2d/platform/android/java/src下的org目录拷贝到proj.android/src,注意不要把原来的org的内容覆盖了。也可以导入cocos2dx/platform/android/java这个工程生成一个jar文件添加到项目的libs文件夹下。

把Resources下的文件拷贝到proj.android/assets;
修改Android.mk示例:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp \
                   这里列出每个cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes/Common \
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes/Knowledge \
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes/data \
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes/regex \

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static


include $(BUILD_SHARED_LIBRARY)

$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
$(call import-module,extensions)

执行以下命令

cocos run -s ~/x_workspace/KnowledgeMaze -p android

如果是在windows中,先要进入D:\cocos2d-x\tools\cocos2d-console\bin目录,找到cocos命令

cocos run -s d:\c_workspace\KnowledgeGame -p android
  • 可能出现一直Waiting for device的问题,解决方法是在开发者选项中,选择USB配置,切换到Audio Source尝试。
  • 可能出现在手机上显示Waiting for debugger,解决方法是在开发者选项中,选择调试应用,切换到无。

命令行编译android项目时如果报错: UNEXPECTED TOP-LEVEL Multiple dex files …

可能是因为在用Eclipse IDE开发为了解决找不到java代码时的编译错误,把cocos2d/cocos/2d/platform/android/java/src/org/cocos2dx/下的lib代码文件夹拷贝到了proj.android/src/org/cocos2dx下,而proj.android/project.properties文件中有android.library.reference.1=../cocos2d/cocos/2d/platform/android/java这行指示会引用这个库,所以最后用命令行编译时会把dex files多了的错误。

如果在使用eclipse编译时找不到cocos2d-x的java代码,把项目目录下的cocos2d\cocos\2d\platform\android\java目录导入为单独库,然后在项目属性\android\library中把它添加进来,不要勾选Is Library。

运行示例代码

示例代码工程在\cocos2d-x\build中,找到对应的工程文件,打开即可。

在Visual Studio 2012中编译使用HttpClient

添加现有项,\cocos2d-x\cocos\network\proj.win32\libNetwork.vcxproj,然后在主工程的通用属性中添加新引用libNetwork,然后在属性\链接器\输入\附加依赖项中输入libcurl_imp.lib

 cocos2d-x3.3visual studio项目中添加cocos2d-x库

在解决方案中添加现有项目,\cocos\2d\ibcocos2d.vcxproj,然后在主工程中添加引用,添加新引用,勾选要添加的引用,确定。

 

发表评论