AndroidのNDKのインストールを行う
↓
※Windows環境ではPythonを動かすためのパイソンのインストールを先に行う
↓
Setup.pyでCocos2dxのインストールをする
↓
AndroidNDKのパスを記載する
↓
ターゲットになるマシンのプロジェクトを立ち上げる
※apple系はapple系のマシンでしかコンパイルできない
※Windows系はWindowsマシンでしかコンパイルできない
↓
プラットフォームに応じたCocos2Dライブラリをビルドする
↓
「cocos new プロジェクト名~~~」 をコマンドラインから行う
↓
できたプロジェクトのソースを編集してコンパイルする
↓
Cocos2Dライブラリとリンクする
↓
ターゲットマシンに転送する
↓
動く
※macでwwindowsは動くが、その逆はできない。ので1つの開発マシンで全ての環境を担おうと思うとmacで開発環境を揃える方がいいような感じ。
デバッグ情報のフォーマットを“Program Database for Edit and Continue (/Zi)”に設定することが必要。 インクリメンタルリンクの有効化に“Yes (/INCREMENTAL)”を設定することが必要。 Debug -> Optionの“Native Edit and Continue”を有効にすることが必要。
これでいいようです。
//Sprite *m_pSpr; m_pSpr->setTexture( CCTexture2D *pTexture );
256x256でアルファチャンネル付き32bit(4バイト)画像を作る
int texLength = 256 * 256 * 4; char *pData = (char*)malloc(texLength); m_pTex = new CCTexture2D(); m_pTex->initWithData(pData, texLength, Texture2D::PixelFormat::RGBA8888, 256, 256, size );
これでinitWithDataしたあとは、テクスチャの中身がCocosの管理下に置かれているようでpDataをfreeしても問題なかった。
もちろんpDataの中身はARGB8888で構成すること。0x80808080だとグレー、0xffffffffだと白になるよ!
pDataの中身を毎フレーム入れ替えても問題なかった。しかし使用メモリが数MB増えた(リークはしていない)のと、FPSが60から55に落ちたのが気になる。
最終的にはdraw関数で描かれている。ただし、Sceneに登録したスプライトは自動で呼び出されるため。自分でdrawする必要はない。
それをあえて自前でdrawする(Sceneに登録せずに描画する)にはどうすればいいのか?できるのか?
ccBlendFunc blend; blend.src = GL_ONE_MINUS_DST_COLOR; blend.dst = GL_ONE; hoge->setBlendFunc(blend);
src | dst | |
ノーマル | GL_SRC_ALPHA | GL_ONE_MINUS_SRC_ALPHA |
加算 | GL_SRC_ALPHA | GL_ONE |
減算 | GL_ZERO | GL_ONE_MINUS_SRC_COLOR |
乗算 | GL_ZERO | GL_SRC_COLOR |
反転 | GL_ONE_MINUS_DST_COLOR | GL_ZERO |
XOR | GL_ONE_MINUS_DST_COLOR | GL_ONE_MINUS_SRC_COLOR |
スクリーン | GL_ONE_MINUS_DST_COLOR | GL_ONE |
加算 | GL_SRC_ALPHA | GL_ONE |
アンカーポイントの原点は「左下」なんですって。(1.0f,1,0f)で右上になるとのこと
これはノードの左下を(0,0)とし、右上を(1,1)としたそのノードの基準点で、デフォルトは中心(0.5 , 0.5)に設定されていま す。 setPositionで設定した位置はこの点の位置が設定されますし、getPositionではこの点の座標が返されます。
2Dベースのライブラリなのに変わった座標系だなぁ