「Cocos2d-x」カテゴリーアーカイブ

【cocos2d-x】プロジェクト作成直後のソースファイルを解析する。

Cocos2d-xの開発環境作成についてはこちらにまとめてあります。

https://qiita.com/takishita2nd/items/0b54af9860f54c65fd24

今回は、プロジェクト作成直後に作成されるソースファイルの中身を覗いてみます。

とはいっても、いきなりソース解析も難しいので、こちらの初心者用の解説を見ながら確認していきました。

https://www.tuyano.com/index3?id=9496003

基本的に弄るソースはClassesの中だけです。

それ以外はCocos2d-xのライブラリ本体だったり、各プラットフォームのビルド環境なので、今後一切触る必要は無いと思います。

むしろ、書き換えたら正常に動く保証はない。

AppDelegateクラス

アプリケーション全体の設定を記述します。

タスク切り替え時の処理とかをここに書くことになります。

最初は弄ることは無いと思います。

HelloWorldクラス

上のリンクにあった初心者用テキストには、Layerクラスを継承してHelloWorldクラスを作成していると書いてありますが、実際にはSceneクラスを継承しています。

class HelloWorld : public cocos2d::Scene
{
public:
    static cocos2d::Scene* createScene();

    virtual bool init();
    
    // a selector callback
    void menuCloseCallback(cocos2d::Ref* pSender);
    
    // implement the "static create()" method manually
    CREATE_FUNC(HelloWorld);
};

Cocos2d-xの概念として、画面毎にシーンを作成し、その中に画面を構成するオブジェクトを配置する、というイメージのようです。

大きな差分はこれくらいかな。

init()で画面に配置する部品をオブジェクト化して配置しています。

青の部分はメニューになっていて、クリックするとアプリを終了するコールバックが呼ばれます。

赤い部分はフォントを読み込んでテキストを表示しています。

黄色の部分はResourceフォルダの中にある画像を表示させています。

でもイマイチ座標周りがよく分からん。

visibleSizeが画面のサイズで、

originがOpenGLの座標系?を表している?

画面の解像度が変わっても表示が崩れないように計算していると思うのだが。

でも、ここまでで、表示位置を変えることはできると思うぞ。

ほらできた。