cocos2d-consoleで
パッケージ管理
第11回cocos2d-x勉強会 @giginet
@giginet
http://www.kawaz.org/
• 『cocos2d-xではじめる
スマートフォンゲーム開
発 [cocos2d-x Ver.3対応]
for iOS/Android 』
• 技術評論社 税別¥2,980
• 大好評発売中!!!
今日話すこと
cocos2d-console
https://github.com/cocos2d/cocos2d-console
http://www.cocos2d-x.org/news/416
cocos package
• リポジトリからライブラリを引っ張ってきて
管理するコマンド
cocos framework
• ライブラリを自分のプロジェクトに簡単に組
み込むコマンド
基本的な使い方
$ cocos new YourGame -l cpp
$ cocos package install gaf
$ cd YourGame
$ cocos framework add gaf
cocos package
• ~/.cocos_packagesにパッケージをインス
トールできる
• cocos package search [query]
• cocos package list
• cocos package info [name]
cocos package install
cocos package list
cocos framework
• ~/.cocos_packages以下にインストールされ
たライブラリをプロジェクトに組み込む
• cocos framework add [name]
• cocos framework remove [name]
cocos framework add
• フレームワークの依存ファイルをpackages/
[name]-[version]/以下にコピーしてくれる
• XcodeプロジェクトやAndroid.mkなどの設定
も自動的に行ってくれる
プラットフォーム毎に自動設定
iOS
Android
便利そう!
リポジトリ
• 登録されているパッケージを検索するAPI
• http://pmr.cocos.com/?keyword=[query]
• [query]を渡さずにJSONを取得すると、現在
登録されている全てのパッケージが閲覧でき
る
http://pmr.cocos.com/?keyword=
わずか3件しかない [2015/3/20現在]
現段階では全然使えない
• まだまだ発展途上?
frameworkを自作する
frameworkを自作する
• 現状、リポジトリからframeworkを取得して
くる使い方は難しい
• 最新版のcocos2d-consoleではframeworkの新
規作成に対応している
cocos framework create
• cocos framework createコマンドでフレームワークを
自作できる
• cocos2d-x 3.4には含まれていない
• 試す場合はcocos2d/cocos2d-console v3ブランチ
のHEADを使う
• ドキュメントもなかった
frameworkを作る
$ cocos new NewFramework -l cpp
$ NewFramework
$ cocos framework create new_framework
packages/new_framework-1.0
package.json
• パッケージの名前や概要、バージョンを記述
するファイル
install.json
• パッケージインストール時の動作を定義する
ファイル
例:ADX2 for cocos2d-x
• CRI・ミドルウェアさんが配付するADX2 for
cocos2d-xを例にパッケージを作成してみた
• http://www.adx2le.com/
package.json
{
"name": "adx2",
"version": "1.0",
"engine": "3.4+",
"author": "CRI Middleware Inc.",
"url": "http://www.adx2le.com/",
"description": "Feature-rich/cross-
platform audio solution"
}
install.json
[
{
"command": "add_header_path",
"source": "adx2-1.0/include/android",
"platform": ["android"]
},
{
"command": "add_header_path",
"source": "adx2-1.0/include/ios",
"platform": ["ios"]
},
{
"command": "add_header_path",
"source": "adx2-1.0/include/macosx",
"platform": ["mac"]
},
{
"command": "add_header_path",
"source": "adx2-1.0/include/pc",
"platform": ["win"]
},
install.json
{
"command": "add_lib",
"source": "libcri_ware_android_LE.so",
"import-module": "adx2-1.0/libs/android/armeabi-v7a",
"platform": ["android"]
},
{
"command": "add_lib",
"source": "adx2-1.0/libs/ios/libcri_ware_ios_LE.a",
"platform": ["ios"]
},
{
"command": "add_lib",
"source": "adx2-1.0/libs/macosx/libcri_ware_macosx_LE.a",
"platform": ["mac"]
},
{
"command": "add_lib",
"source": "adx2-1.0/libs/pc/x86/cri_ware_pcx86_LE_import.lib",
"platform": ["win"]
}
]
command
• add_header_path
• includeパスの設定を追加する
• add_lib
• 外部ライブラリの設定を追加する
その他のcommand
• add_system_framework
• add_files_and_dirs
• add_entry_function
ファイルの設置
• 作成したpackageをzipに固める
• .cocos_packages/adx2-1.0/adx2-1.0.zip
local_packages.jsonの更新
• ~/.cocos_packages/local_packages.jsonに今
追加したパッケージを登録する
• [パッケージ名]-[バージョン]をキーにした辞
書を追加する
local_packages.json
{
"adx2-1.0": {
"author": "giginet",
"version": "1.0",
"filename": "adx2-1.0.zip",
"name": "adx2"
}
}
インストールする
$ cocos new YourGame -l cpp
$ cd YourGame
$ cocos framework add adx2
ライブラリを追加できた
• 勝手に設定されて嬉しい
まとめ
• 現段階では実用性に乏しい
• 現状では、.cocos-packagesへのインストールなどを手
動でやる必要があって面倒
• リポジトリへの登録や、リポジトリURLの変更ができ
て欲しい
まとめ
• ドキュメントがないのでコード(Python)を読む
しかない
• 中の実装が追いづらい
• 将来的にBundlerやCocoaPodsのように管理でき
るようになると嬉しい
• PR送ろうと思います
Any Questions?

cocos2d-consoleでパッケージ管理