cocos2d-x(c++) で、int(整数)をstring(文字列)に変換

cocos2d-x(c++) で、intをstring(文字列)に変換

環境 cocos2d-x 3.14(c++)

StringUtils::toString()で、int型からstring型に変換できる。

int hogeInt = 123;
string hogeStr = StringUtils::toString(hogeInt);

で、下記でもできるのですが、androidでビルドするとエラーになるので、
下記を使う場合はご注意を。


string hogeStr = std::to_string(123);

cocos2d-x v3で、アニメーション終了後に指定の関数を実行する

cocos2d-x v3で、移動アニメーションのあとに、指定の関数を実行するサンプルコード

今回はアニメーション終了後に、同じクラス内の関数を呼び出す例です。
argA,argBは、指定の関数に引数を引き継ぐためのものです。

下記はcocos2d-x バージョン3系の書き方です。


// 移動アニメーション auto moveAction = MoveTo::create(1.2f,Vec2(sprite->getPositionX() + toPosX,sprite->getPositionY() + toPosY)); // ラムダ式でコールバックを設定する auto callback = CallFuncN::create([this,argA,argB](Ref *sender){ // 同じクラス内のhogeMethodをアニメーション終了後に呼ぶ this->hogeMethod(argA,argB); }); auto seq = Sequence::create(moveAction,callback, nullptr); sprite->runAction(seq); // 〜 省略 〜 void hogeMethod(int argA,int argB){ // アニメーション完了後の処理 }

味噌は、thisで、自分を渡し、同じクラスのと、argA,argBで好きな引数を持たせられる事。

cocos2d-x(c++) 色(Color3B等)を定数の配列でカラースキーム化

cocos2d-xで、色のパターン等用意する時、
配列で定数化しておくと便利なのでメモ

宣言


// Color3Bの型で3色用意 static const std::vector<Color3B> COLOR_LIST = { Color3B(255,0,0), //赤 Color3B(0,255,0), //緑 Color3B(0,0,255) // 青 };

呼び出し


COLOR_LIST.at(0); // 赤 COLOR_LIST.at(1); // 緑 COLOR_LIST.at(2); // 青

もちろん、Color4Bでも同じ要領

ちなみに赤を出したいだけなら、、、


Color3B::RED

とするだけなので、この記事はそういう趣旨じゃない。。。

cocos2d-x(c++)ひっかかりそうなポイントメモ

ただ生成したNodeのgetContentSize()は0。


node->getContentSize().width // 0

座標は、左下が基準

OpenGLだからか、左下が基準。

oya->addChild(ko)をすると色々挙動が難しい

子は親のアンカーポイントを無視する。

getBoundingBoxの座標が連動していなかったり。

androidでビルドする時、std::to_string()を使うビルドできない。

下記で代用


int newInt = StringUtils::toString(hogeInt);

Vec2でキャストせずにintとしてつかっているといつの間にかずれるのでちゃんとキャストしよう


Vec2 vec2Hoge = hogeMethod(touchLocation); log("vec2HogeFloat x:%f y:%f",vec2Hoge.x,vec2Hoge.y); log("vec2HogeInt x:%i y:%i",vec2Hoge.x,vec2Hoge.y);

cocos2d-xのアプリ開発のお気に入り環境メモ

cocos2d-xでAndroidとiOSのアプリ開発で使っている環境メモ

言語&IDE

C++でxcode使ってる、

もうcocos creator使った方がいいみたいですが。

UI&アニメーションの開発エディタ

下記ツールでUIをGUIエディタ作れる。

cocos studio

version3.10で ※注意サポート終了

下記からダウンロード可能

http://cocos2d-x.org/docs/deprecated/studio/

メモ

  • 下記particle2dxのplistをそのまま取り込める。
  • opacityや、colorのアニメーションも、デフォルトだとタイムラインに表示されないが、record frame の✅を入れると表示される。

パーティクル用のエディタ

Particle2dx

http://particle2dx.com/
* オリジナルの画像がアップロードできないようなので、一度エクスポートしてから、画像ファイル名をplistをテキストエディタで開いて変更する。
* もしくは、エクスポート時の画像ファイル名と同じ画像ファイルで上書き。

シェーダー周り

cocos2dx用というわけでないないがシェーダーのデモに使える

http://glslsandbox.com/e#38793.0

「cocos2d-x 3.5」 と 「cocos studio 2.2」の開発環境構築。

cocosインストール

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

こちらcocosというランタイム?をインストール。
またcocos studio2.2をインストール。
起動時のメニューにて、storeというのがあるので、
そこからcocos2d-x 3.5をダウンロードし、インストール。

初期セットアップ

$python setup.py 
$source ~/.bash_profile

テンプレートプロジェクトを作成 (ios&android)

$cocos new MyGame -p com.example.hoge -l cpp -d ~/project_folder/hoge_cocos2dx

iOSで開発

$cd ~/project_folder/hoge_cocos2dx/
のxcodeファイルを開けば、iosの確認が可能。

アンドロイドで開発(IDEつかわずに直接端末つないでadbのパターン)

$cd proj.android/
$python build_native.py 

android端末にインストール

$cd ~/project_folder/hoge_cocos2dx/MyGame/proj.android/bin/
$adb install MyGame-debug.apk