mattak's blog

気の向くままに書く

cocos2d-x 2.2.0 インストール

android環境とios環境を整えたときのメモ

Android

  1. cocos2d-xのダウンロード

    $ open http://www.cocos2d-x.org/download

2.2.0をダウンロード

  1. プロジェクトの作成

    $ cd $COCOS2DX_HOME $ cd tools/project-creator $ python create_project.py -project MyGame -package com.example.mygame -language lua

これで$COCOS2DX_HOME/projects/MyGame が作成された。

  1. プロジェクトのビルド

    $ cd $COCOS2DX_HOME/projects/MyGame/proj.android

ここでandroid ndkを設定してなかったら

1. http://developer.android.com/tools/sdk/ndk/index.html よりDL
2. パスを通す

    $ export NDK_ROOT=$HOME/src/android-ndk

ビルドして、アーカイブを生成

$ ./build_native.sh
  1. プロジェクトのビルド

    $ android update project --path . $ ant debug

もし、sdk.dirが設定されてないとエラーが出たら, 指定の場所で local.propertiesを生成

$ cd $COCOS2DX_HOME/cocos2dx/platform/android/java/
$ android project update --path .

もしくは ANDROID_SDK_ROOTとかを設定..

成功すると、 bin/MyGame-debug.apkが作成されているはず..

gradle + android

project.properteisを参考にライブラリをincludeする

  1. ライブラリをシンボリックリンクする

    $ ln -s $COCOS2DX_HOME/cocos2d-x-2.2.0/cocos2dx/platform/android/java libcocos

  2. ライブラリにbuild.gradleを記述

    buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } }

    apply plugin: 'android-library'

    android { compileSdkVersion 17 buildToolsVersion "17"

     defaultConfig {
         minSdkVersion 8
         targetSdkVersion 8
     }
    
     sourceSets {
         main {
             manifest.srcFile 'AndroidManifest.xml'
             java.srcDirs = ['src']
             resources.srcDirs = ['src']
             aidl.srcDirs = ['src']
             renderscript.srcDirs = ['src']
             res.srcDirs = ['res']
             assets.srcDirs = ['assets']
         }
     }
    

    }

$COCOS2DX_HOME/projects/MyGame/proj.android/settings.gradle を記述

include ':libcocos'

$COCOS2DX_HOME/projects/MyGame/proj.android/build.gradle を記述

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

tasks.withType(Compile) {
    options.encoding = 'UTF-8'
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile project(':libcocos')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 8
    }

    buildTypes {
        debug {
            debuggable true
            jniDebugBuild true
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs         = ['src']
            resources.srcDirs    = ['src']
            aidl.srcDirs         = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs          = ['res']
            assets.srcDirs       = ['assets']
        }
    }
}

ビルド

$ gradle assemble

これで、build/apk/ いかにapkができる

iOS

基本的にproj.ios/HOGE.xcodeprojをXCodeで開くだけでOK

基本

cocos2d-xのディレクトリ構造は以下のようになっている.

.
├── Classes
├── Resources
├── proj.android
├── proj.blackberry
├── proj.ios
├── proj.linux
├── proj.marmalade
└── proj.win32
  • proj.XXXXが各OSのプロジェクトコード.
  • Classesに共通の処理を記述
  • Resourcesに共通のリソースを配置

という感じで、開発がスタートできる..