cocos2d-xでプロジェクト作成時にいつも自分が行っている作業
プロジェクトの作成
cocos new MyGame -p com.kuwapp.mygame -l cpp -d ~/Projects
MyGame
プロジェクト名-p com.kuwapp.mygame
パッケージ名-l cpp
言語-d ~/Projects
ディレクトリ
gitignoreを追加
# Mac .DS_Store #Java *.class # XCode *.moved-aside build/* *.xcworkspace *.mode1v3 *.mode2v3 *.pbxuser !default.xcworkspace !default.mode1v3 !default.mode2v3 !default.pbxuser *.perspectivev3 profile xcuserdata .idea/* #Cocoa pods *.old Pods/* #cocos2d-x libs/ bin/ obj/ assets/ gen/ out/ .classpath .project .cproject # backup files *.bak *.bak[0-9][0-9] *.orig *.orig[0-9][0-9] # source packages - anywhere *.tar.bz2 *.tar.gz *.tar *.tgz *.gtgz local.properties
project.propertiesのtargetを最新のAndroidSDKのapi levelに変更
target=android-22
cppファイルをコンパイル時に全て読み込めるようAndroid.mkを変更する
cppファイルを追加するごとにAndroid.mkに記述していくのは面倒なので自動で読めるようにする
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos) LOCAL_MODULE := cocos2dcpp_shared LOCAL_MODULE_FILENAME := libcocos2dcpp CPP_FILES := $(shell find $(LOCAL_PATH)/../../Classes -name *.cpp) LOCAL_SRC_FILES := hellocpp/main.cpp LOCAL_SRC_FILES += $(CPP_FILES:$(LOCAL_PATH)/%=%) LOCAL_C_INCLUDES := $(shell find $(LOCAL_PATH)/../../Classes -type d) # _COCOS_HEADER_ANDROID_BEGIN # _COCOS_HEADER_ANDROID_END LOCAL_STATIC_LIBRARIES := cocos2dx_static # _COCOS_LIB_ANDROID_BEGIN # _COCOS_LIB_ANDROID_END include $(BUILD_SHARED_LIBRARY) $(call import-module,.) # _COCOS_LIB_IMPORT_ANDROID_BEGIN # _COCOS_LIB_IMPORT_ANDROID_END
参考:http://ichiokumanyen.hatenablog.jp/entry/2013/10/05/220232
std::to_stringなどを使用できるようApplication.mkを変更する
std::to_stringやstd::stoiはそのままでは使用できないのでApplication.mkを改良する
APP_STL := c++_static NDK_TOOLCHAIN_VERSION=clang APP_PLATFORM := android-9 APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char APP_LDFLAGS := -latomic ifeq ($(NDK_DEBUG),1) APP_CPPFLAGS += -DCOCOS2D_DEBUG=1 APP_OPTIM := debug else APP_CPPFLAGS += -DNDEBUG APP_OPTIM := release endif
参考:http://discuss.cocos2d-x.org/t/i-cannot-call-stdlib-functions-like-to-string-stoi-etc/19405/3