SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Cocos2d-x Console
Akihiro Matsuura @ Syuhari, Inc.
About me
• 松浦 晃洋
• 株式会社シュハリ 代表取締役
• Cocos2d-x ゲーム開発
• 書籍、雑誌などの執筆
• Cocos2d-x エヴァンジェリスト
開発のプロが教える
Cocos2d-x逆引きガイドブック
Cocos2d-x Game
Development Essentials
Building Android Games 

with Cocos2d-x
海外での出版に協力
Cocos2d-x 開発者の祭典!
4/2 北京
http://devcon.cocos.com/
週刊アスキー
でレポート
http://weekly.ascii.jp/elem/
000/000/325/325033/
Agenda
• Cocos v2.2
• Console 機能
Cocos v2.2
• メリット
• プロジェクトの新規作成が簡単
• Cocos2d-x がプレビルドされている
• Build が早い!
• デメリット
• Cocos2d-x のソースがヘッダしか見れない
• カスタマイズできない
Cocos framework v3.5
Console 機能を利用する
What about Console
• アプリケーションの情報を見られる
• シーングラフ
• テクスチャキャッシュ
• Xcode や DDMS なしで端末のログを見られる
• タッチ操作をシミュレートできる
• コマンドを追加することができる
Console 実装方法
https://github.com/syuhari/Console
Start Console
// Console クラスのインスタンスを取得
auto console = Director::getInstance()->getConsole();
// TCPポートを指定して接続を待ち受ける
console->listenOnTCP(6010);
Connect your game
$ telnet localhost 6010
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
help command
> help
Available commands:
allocator Display allocator diagnostics for all allocators
config Print the Configuration object
debugmsg Whether or not to forward the debug messages on the console. Ar
director director commands, type -h or [director help] to list supported
exit Close connection to the console
fileutils Flush or print the FileUtils info. Args: [flush | ]
fps Turn on / off the FPS. Args: [on | off]
help Print this message
projection Change or print the current projection. Args: [2d | 3d]
resolution Change or print the window resolution. Args: [width height re
scenegraph Print the scene graph
texture Flush or print the TextureCache info. Args: [flush | ]
touch simulate touch event via console, type -h or [touch help] to li
upload upload file. Args: [filename base64_encoded_data]
version print version string
>
scenegraph command
> scenegraph
>
<Scene | tag = -1>
- <Node | Tag = -1
- <Layer | Tag = -1>
-- <Node | Tag = 0
--- <Sprite | Tag = 5, TextureID = 4>
Total Nodes: 5
texture command
> texture
> “/HelloWorld.png" rc=2 id=4 960 x 640 @ 32 bpp => 2400 KB
"/cc_2x2_white_image" rc=1 id=3 2 x 2 @ 32 bpp => 0 KB
"/cc_fps_images" rc=4 id=2 999 x 54 @ 16 bpp => 105 KB
TextureCache dumpDebugInfo: 3 textures, for 2505 KB (2.45 MB)
Upload a file
> upload filename base64
• 指定したファイル名で FileUtiles::getWritablePath のパスへフィル
をアップロード
• ファイルの内容は base64 でエンコードして指定
Upload a file by script
#!/bin/sh
if [ $# -lt 2 ]; then
echo "IPアドレスとアップロードするファイルを指定してください"
echo "usage : ./upload.sh ipaddress filename"
exit 1
fi
path=$2
filename=${path##*/}
file=`cat $2 | base64`
commandline()
{
sleep 1; echo "upload $filename $file"
sleep 5;
}
commandline | telnet $1 6010
Custom Command
Dispatch Event
cocos2d::Console::Command event = {
"event",
"dispatch custom event. Args:[event name]",
[](int fd, const std::string& args) {
Director::getInstance()->
getEventDispatcher()->dispatchCustomEvent(args);
const char msg[] = "dispatched custom event!n";
send(fd, msg, sizeof(msg),0);
}};
Director::getInstance()->getConsole()->addCommand(event);
Remove a file
cocos2d::Console::Command del = {
"remove",
"remove a file. Args:[filename]",
[](int fd, const std::string& args) {
auto path = FileUtils::getInstance()->
getWritablePath() + args;
int ret = remove(path.c_str());
if (ret==0) {
const char msg[] = "removed file!n";
send(fd, msg, sizeof(msg),0);
} else {
const char msg[] = "could not remove filen";
send(fd, msg, sizeof(msg),0);
}
}};
Director::getInstance()->getConsole()->addCommand(del);
注意点
Scheduler *sched = Director::getInstance()->getScheduler();
sched->performFunctionInCocosThread( [](){
// メインスレッドで行う処理
});
• コマンドはネットワークスレッドで実行される
• UI などの操作をするときは注意が必要
• メインスレッドで実行したい処理は下記のように処理する
Demo
Summary
• Cocos v2.2 はぜひ試してみて!
• Console は便利!

カスタマイズできるのがイイ!
Cocos2d-x で
開発したいエンジニア
大募集中!
• @syuhari
• facebook.com/syuhari

Weitere ähnliche Inhalte

Was ist angesagt?

cocos2d-x 開発の効率化
cocos2d-x 開発の効率化cocos2d-x 開発の効率化
cocos2d-x 開発の効率化Akihiro Matsuura
 
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナーCocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナーAkihiro Matsuura
 
Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?Shin Fujisawa
 
cocos2d-xとCocos Code IDE
cocos2d-xとCocos Code IDEcocos2d-xとCocos Code IDE
cocos2d-xとCocos Code IDETomoaki Shimizu
 
cocos2d-xのすすめ
cocos2d-xのすすめcocos2d-xのすすめ
cocos2d-xのすすめcowboy_tokyo
 
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」Tomoaki Shimizu
 
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」Tomoaki Shimizu
 
cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用Tomoaki Shimizu
 
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」Tomoaki Shimizu
 
Cocos2d-xおよび関連サービスについて
Cocos2d-xおよび関連サービスについてCocos2d-xおよび関連サービスについて
Cocos2d-xおよび関連サービスについてChukong Technologies Japan
 
Cocos Code IDEを使ってみた
Cocos Code IDEを使ってみたCocos Code IDEを使ってみた
Cocos Code IDEを使ってみたTomoaki Shimizu
 
Cocos2d-x勉強会 2014/10/05
Cocos2d-x勉強会 2014/10/05Cocos2d-x勉強会 2014/10/05
Cocos2d-x勉強会 2014/10/05Yasuhiro Matsuda
 
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」Tomoaki Shimizu
 
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」Tomoaki Shimizu
 
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めましたCocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めましたYasuhiro Matsuda
 
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」Tomoaki Shimizu
 

Was ist angesagt? (20)

cocos2d-x 開発の効率化
cocos2d-x 開発の効率化cocos2d-x 開発の効率化
cocos2d-x 開発の効率化
 
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナーCocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
 
Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?
 
cocos2d-xとCocos Code IDE
cocos2d-xとCocos Code IDEcocos2d-xとCocos Code IDE
cocos2d-xとCocos Code IDE
 
Cocos2d-x(JS)の紹介
Cocos2d-x(JS)の紹介Cocos2d-x(JS)の紹介
Cocos2d-x(JS)の紹介
 
Cocos2d-x 3D Extension
Cocos2d-x 3D ExtensionCocos2d-x 3D Extension
Cocos2d-x 3D Extension
 
cocos2d-xのすすめ
cocos2d-xのすすめcocos2d-xのすすめ
cocos2d-xのすすめ
 
Cocos2d-xによる最新ゲーム開発
Cocos2d-xによる最新ゲーム開発Cocos2d-xによる最新ゲーム開発
Cocos2d-xによる最新ゲーム開発
 
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
 
Cocos2d-xハンズオンセミナー
Cocos2d-xハンズオンセミナーCocos2d-xハンズオンセミナー
Cocos2d-xハンズオンセミナー
 
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
 
cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用
 
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
 
Cocos2d-xおよび関連サービスについて
Cocos2d-xおよび関連サービスについてCocos2d-xおよび関連サービスについて
Cocos2d-xおよび関連サービスについて
 
Cocos Code IDEを使ってみた
Cocos Code IDEを使ってみたCocos Code IDEを使ってみた
Cocos Code IDEを使ってみた
 
Cocos2d-x勉強会 2014/10/05
Cocos2d-x勉強会 2014/10/05Cocos2d-x勉強会 2014/10/05
Cocos2d-x勉強会 2014/10/05
 
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
 
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
 
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めましたCocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
 
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
 

Andere mochten auch

VRでユニティちゃんになる話+おまけ @ Japan VR Fest.
VRでユニティちゃんになる話+おまけ @ Japan VR Fest.VRでユニティちゃんになる話+おまけ @ Japan VR Fest.
VRでユニティちゃんになる話+おまけ @ Japan VR Fest.n_ryota
 
CocoStudioとcocos2d-xの連携2
CocoStudioとcocos2d-xの連携2CocoStudioとcocos2d-xの連携2
CocoStudioとcocos2d-xの連携2Tomoaki Shimizu
 
Cocos2dx Tips - Box2d, Normal mapping
Cocos2dx Tips - Box2d, Normal mappingCocos2dx Tips - Box2d, Normal mapping
Cocos2dx Tips - Box2d, Normal mappingAkihiro Matsuura
 
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -和樹 川端
 
とあるCocos2dx入門編
とあるCocos2dx入門編とあるCocos2dx入門編
とあるCocos2dx入門編kumin1030
 
Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島Tomoaki Shimizu
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島Tomoaki Shimizu
 
Cocos2d xでの開発の準備
Cocos2d xでの開発の準備Cocos2d xでの開発の準備
Cocos2d xでの開発の準備Tomoaki Shimizu
 
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築についてMacでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築についてTomoaki Shimizu
 
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島Tomoaki Shimizu
 
cocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツールcocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツールTomoaki Shimizu
 
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築についてWindowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築についてTomoaki Shimizu
 
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築についてMacでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築についてTomoaki Shimizu
 
Cocos2d-xのかんたんな紹介
Cocos2d-xのかんたんな紹介Cocos2d-xのかんたんな紹介
Cocos2d-xのかんたんな紹介Tomoaki Shimizu
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Tomoaki Shimizu
 
cocos2d-x JavaScript Bindingsについて
cocos2d-x JavaScript Bindingsについてcocos2d-x JavaScript Bindingsについて
cocos2d-x JavaScript BindingsについてTomoaki Shimizu
 
Cocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみようCocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみようTomoaki Shimizu
 

Andere mochten auch (20)

VRでユニティちゃんになる話+おまけ @ Japan VR Fest.
VRでユニティちゃんになる話+おまけ @ Japan VR Fest.VRでユニティちゃんになる話+おまけ @ Japan VR Fest.
VRでユニティちゃんになる話+おまけ @ Japan VR Fest.
 
CocoStudioとcocos2d-xの連携2
CocoStudioとcocos2d-xの連携2CocoStudioとcocos2d-xの連携2
CocoStudioとcocos2d-xの連携2
 
Cocos2dx Tips - Box2d, Normal mapping
Cocos2dx Tips - Box2d, Normal mappingCocos2dx Tips - Box2d, Normal mapping
Cocos2dx Tips - Box2d, Normal mapping
 
SQLite の暗号化
SQLite の暗号化SQLite の暗号化
SQLite の暗号化
 
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
 
とあるCocos2dx入門編
とあるCocos2dx入門編とあるCocos2dx入門編
とあるCocos2dx入門編
 
Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
 
Cocos2d xでの開発の準備
Cocos2d xでの開発の準備Cocos2d xでの開発の準備
Cocos2d xでの開発の準備
 
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築についてMacでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
 
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島
 
cocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツールcocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツール
 
Cocos2d xのススメ
Cocos2d xのススメCocos2d xのススメ
Cocos2d xのススメ
 
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築についてWindowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.4を使用した、Androidアプリの開発環境構築について
 
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築についてMacでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
 
Cocos2d-xのかんたんな紹介
Cocos2d-xのかんたんな紹介Cocos2d-xのかんたんな紹介
Cocos2d-xのかんたんな紹介
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!
 
cocos2d-xとspine
cocos2d-xとspinecocos2d-xとspine
cocos2d-xとspine
 
cocos2d-x JavaScript Bindingsについて
cocos2d-x JavaScript Bindingsについてcocos2d-x JavaScript Bindingsについて
cocos2d-x JavaScript Bindingsについて
 
Cocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみようCocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみよう
 

Ähnlich wie Cocos2d-x Console @Cocos Talks #3

cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理Kohki Miki
 
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築についてMacでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築についてTomoaki Shimizu
 
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築についてMacでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築についてTomoaki Shimizu
 
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築についてMacでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築についてTomoaki Shimizu
 
実はかんたん!ゲームエンジンCocos2d-x入門
実はかんたん!ゲームエンジンCocos2d-x入門実はかんたん!ゲームエンジンCocos2d-x入門
実はかんたん!ゲームエンジンCocos2d-x入門Chukong Technologies Japan
 
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築についてWindowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築についてTomoaki Shimizu
 
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋Tomoaki Shimizu
 
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門Kohki Miki
 
Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化Akihiro Matsuura
 
CocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSBCocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSBTomoaki Shimizu
 
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!Tomoaki Shimizu
 
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろうCocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろうTomoo Kaku
 
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみようNishida Kansuke
 
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築についてMacでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築についてTomoaki Shimizu
 
cocos2d-xとCocosBuilder
cocos2d-xとCocosBuildercocos2d-xとCocosBuilder
cocos2d-xとCocosBuilderTomoaki Shimizu
 
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築についてTomoaki Shimizu
 
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionKazuki Takai
 

Ähnlich wie Cocos2d-x Console @Cocos Talks #3 (20)

cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理
 
Cocos2dx 8hour
Cocos2dx 8hourCocos2dx 8hour
Cocos2dx 8hour
 
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築についてMacでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
 
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築についてMacでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
 
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築についてMacでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
 
実はかんたん!ゲームエンジンCocos2d-x入門
実はかんたん!ゲームエンジンCocos2d-x入門実はかんたん!ゲームエンジンCocos2d-x入門
実はかんたん!ゲームエンジンCocos2d-x入門
 
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築についてWindowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
 
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
 
Cocos最新情報(2015/6/30)
Cocos最新情報(2015/6/30)Cocos最新情報(2015/6/30)
Cocos最新情報(2015/6/30)
 
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
 
Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化Cocos2d-x ver.3 開発の効率化
Cocos2d-x ver.3 開発の効率化
 
CocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSBCocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSB
 
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
 
SQLite の暗号化
SQLite の暗号化SQLite の暗号化
SQLite の暗号化
 
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろうCocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
 
㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう㉞cocos2d-xの開発環境をインストールしてみよう
㉞cocos2d-xの開発環境をインストールしてみよう
 
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築についてMacでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
 
cocos2d-xとCocosBuilder
cocos2d-xとCocosBuildercocos2d-xとCocosBuilder
cocos2d-xとCocosBuilder
 
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
 
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox Edition
 

Mehr von Akihiro Matsuura

Mehr von Akihiro Matsuura (8)

SimpleAudioEngine のカスタマイズ
SimpleAudioEngine のカスタマイズSimpleAudioEngine のカスタマイズ
SimpleAudioEngine のカスタマイズ
 
Yidev cocos2dx
Yidev cocos2dxYidev cocos2dx
Yidev cocos2dx
 
What I talk about When I talk about Cocos2d-x
What I talk about When I talk about Cocos2d-xWhat I talk about When I talk about Cocos2d-x
What I talk about When I talk about Cocos2d-x
 
Cocos2dx tips
Cocos2dx tipsCocos2dx tips
Cocos2dx tips
 
Cocos2dx 基本編
Cocos2dx 基本編Cocos2dx 基本編
Cocos2dx 基本編
 
Cocos2dx 勉強会
Cocos2dx 勉強会Cocos2dx 勉強会
Cocos2dx 勉強会
 
cocos2d で遊ぼう
cocos2d で遊ぼうcocos2d で遊ぼう
cocos2d で遊ぼう
 
CakePHP in iPhone App
CakePHP in iPhone AppCakePHP in iPhone App
CakePHP in iPhone App
 

Cocos2d-x Console @Cocos Talks #3

  • 2. About me • 松浦 晃洋 • 株式会社シュハリ 代表取締役 • Cocos2d-x ゲーム開発 • 書籍、雑誌などの執筆 • Cocos2d-x エヴァンジェリスト
  • 4. Cocos2d-x Game Development Essentials Building Android Games 
 with Cocos2d-x 海外での出版に協力
  • 7. Agenda • Cocos v2.2 • Console 機能
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. • メリット • プロジェクトの新規作成が簡単 • Cocos2d-x がプレビルドされている • Build が早い! • デメリット • Cocos2d-x のソースがヘッダしか見れない • カスタマイズできない Cocos framework v3.5
  • 17. What about Console • アプリケーションの情報を見られる • シーングラフ • テクスチャキャッシュ • Xcode や DDMS なしで端末のログを見られる • タッチ操作をシミュレートできる • コマンドを追加することができる
  • 19. Start Console // Console クラスのインスタンスを取得 auto console = Director::getInstance()->getConsole(); // TCPポートを指定して接続を待ち受ける console->listenOnTCP(6010);
  • 20. Connect your game $ telnet localhost 6010 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
  • 21. help command > help Available commands: allocator Display allocator diagnostics for all allocators config Print the Configuration object debugmsg Whether or not to forward the debug messages on the console. Ar director director commands, type -h or [director help] to list supported exit Close connection to the console fileutils Flush or print the FileUtils info. Args: [flush | ] fps Turn on / off the FPS. Args: [on | off] help Print this message projection Change or print the current projection. Args: [2d | 3d] resolution Change or print the window resolution. Args: [width height re scenegraph Print the scene graph texture Flush or print the TextureCache info. Args: [flush | ] touch simulate touch event via console, type -h or [touch help] to li upload upload file. Args: [filename base64_encoded_data] version print version string >
  • 22. scenegraph command > scenegraph > <Scene | tag = -1> - <Node | Tag = -1 - <Layer | Tag = -1> -- <Node | Tag = 0 --- <Sprite | Tag = 5, TextureID = 4> Total Nodes: 5
  • 23. texture command > texture > “/HelloWorld.png" rc=2 id=4 960 x 640 @ 32 bpp => 2400 KB "/cc_2x2_white_image" rc=1 id=3 2 x 2 @ 32 bpp => 0 KB "/cc_fps_images" rc=4 id=2 999 x 54 @ 16 bpp => 105 KB TextureCache dumpDebugInfo: 3 textures, for 2505 KB (2.45 MB)
  • 24. Upload a file > upload filename base64 • 指定したファイル名で FileUtiles::getWritablePath のパスへフィル をアップロード • ファイルの内容は base64 でエンコードして指定
  • 25. Upload a file by script #!/bin/sh if [ $# -lt 2 ]; then echo "IPアドレスとアップロードするファイルを指定してください" echo "usage : ./upload.sh ipaddress filename" exit 1 fi path=$2 filename=${path##*/} file=`cat $2 | base64` commandline() { sleep 1; echo "upload $filename $file" sleep 5; } commandline | telnet $1 6010
  • 27. Dispatch Event cocos2d::Console::Command event = { "event", "dispatch custom event. Args:[event name]", [](int fd, const std::string& args) { Director::getInstance()-> getEventDispatcher()->dispatchCustomEvent(args); const char msg[] = "dispatched custom event!n"; send(fd, msg, sizeof(msg),0); }}; Director::getInstance()->getConsole()->addCommand(event);
  • 28. Remove a file cocos2d::Console::Command del = { "remove", "remove a file. Args:[filename]", [](int fd, const std::string& args) { auto path = FileUtils::getInstance()-> getWritablePath() + args; int ret = remove(path.c_str()); if (ret==0) { const char msg[] = "removed file!n"; send(fd, msg, sizeof(msg),0); } else { const char msg[] = "could not remove filen"; send(fd, msg, sizeof(msg),0); } }}; Director::getInstance()->getConsole()->addCommand(del);
  • 29. 注意点 Scheduler *sched = Director::getInstance()->getScheduler(); sched->performFunctionInCocosThread( [](){ // メインスレッドで行う処理 }); • コマンドはネットワークスレッドで実行される • UI などの操作をするときは注意が必要 • メインスレッドで実行したい処理は下記のように処理する
  • 30. Demo
  • 31. Summary • Cocos v2.2 はぜひ試してみて! • Console は便利!
 カスタマイズできるのがイイ!