本日cocos2dxを勉強して、ちょっと困った点をブログに書いていきます。
もし、同じようにお困りの方がいらっしゃいましたら参考にして下さい。
前回
visible
オブジェクトを表示する表示しないを設定できるプロパティvisible。結構利用頻度が高いです。cocos2dの場合は,以下のようなコードで利用します。
1 2 3 4 5 6 7 |
sprite.visible = NO; if(sprite.visible){ }else{ } |
これがcocos2dxになると以下のようになります。
1 2 3 4 5 6 7 8 |
sprite->setVisible(false); if (sprite->isVisible()) { }else{ } |
isVisible()があるのがわからずに結構時間を使いました。
クラスメソッド
インスタンスメソッドとクラスメソッドがcocos2dxにもあります。それぞれの定義の仕方がcocos2d同様違います。
1 2 3 4 5 |
//cocos2d +(NSString*)getTileMapName; //cocos2dx static cocos2d::CCString *getTileMapName(); |
scene()でも利用しているように、頭にstaticを付けたメソッドがクラスメソッドになるみたいです。
コンストラクタ・デストラクタ
C++の基本とも言えるのが(私は全然知らなかったですが)このコンストラクタ・デストラクタとのこと。- コンストラクタ:オブジェクトの生成時に呼び出されるメソッド
- デストラクタ:オブジェクトが開放(消える)時に呼び出さるメソッド
cocos2dには、deallocというものがあり、メモリーの調整で主に利用するのですが、cocos2dxにはないので、どうするのかと思っていましたが、このデストラクタを使えば同じようなことができるみたいです。
1 2 3 4 5 6 7 8 9 |
//ヘッダーで定義 ~OpeningLayer(); //メソッドの中身を記載 OpeningLayer::~OpeningLayer(){ } |
【〜】この波線はチルダと言うものみたいです。
onEnter()やonExit()など、よく似た動作をするメソッドがありますので、どのように使っていくのかがよくわかりませんが、とりあえずこういったものが使えます。
[参考サイト]
CCTouch
タッチ処理で利用をしているCCTouchクラス。cocos2dではUITouchクラスを同じように利用をしていました。大きな違いはないのですが、マルチタッチの場合に利用するタッチの識別方法が少し違います。
1 2 3 4 5 |
//cocos2dの場合 int touchNumber = [touch hash]; //cocos2dxの場合 int touchNumber = pTouch->getID(); |
最後に
cocos2dx内に、プロジェクトを作成してそれのiosをxcodeで読み込んで使っているのですが、別のプロジェクトを作成しようとすると上手く立ち上がらないのは、何か問題があるのか、もとから出来ないのか。この辺りが少しメンドクサイ。
今日はインターフェイスの部分は大体思った通りいったので、次はCCTMXLayerの表示に取り掛かる予定です。
![]() | cocos2d-xによるiPhone/Androidアプリプログラミングガイド 清水 友晶 マイナビ 2013-06-18 売り上げランキング : 930 Amazonで詳しく見る |
