C++初心者が【cocos2d-x】を勉強する。5回目

本日cocos2dxを勉強して、ちょっと困った点をブログに書いていきます。 もし、同じようにお困りの方がいらっしゃいましたら参考にして下さい。

前回

visible

オブジェクトを表示する表示しないを設定できるプロパティvisible。結構利用頻度が高いです。 cocos2dの場合は,以下のようなコードで利用します。 [c] sprite.visible = NO;

if(sprite.visible){

}else{

}

[/c]

これがcocos2dxになると以下のようになります。 [c]

sprite->setVisible(false);

if (sprite->isVisible()) {

}else{

}

[/c]

isVisible()があるのがわからずに結構時間を使いました。

クラスメソッド

インスタンスメソッドとクラスメソッドがcocos2dxにもあります。 それぞれの定義の仕方がcocos2d同様違います。 [c]

//cocos2d +(NSString*)getTileMapName;

//cocos2dx static cocos2d::CCString *getTileMapName();

[/c] scene()でも利用しているように、頭にstaticを付けたメソッドがクラスメソッドになるみたいです。

コンストラクタ・デストラク

C++の基本とも言えるのが(私は全然知らなかったですが)このコンストラクタ・デストラクとのこと。

  • コンストラクタ:オブジェクトの生成時に呼び出されるメソッド
  • デストラクタ:オブジェクトが開放(消える)時に呼び出さるメソッド

cocos2dには、deallocというものがあり、メモリーの調整で主に利用するのですが、cocos2dxにはないので、どうするのかと思っていましたが、このデストラクタを使えば同じようなことができるみたいです。 [c]

//ヘッダーで定義 ~OpeningLayer();

//メソッドの中身を記載 OpeningLayer::~OpeningLayer(){

}

[/c] 【〜】この波線はチルダと言うものみたいです。 onEnter()やonExit()など、よく似た動作をするメソッドがありますので、どのように使っていくのかがよくわかりませんが、とりあえずこういったものが使えます。

[参考サイト]

CCTouch

タッチ処理で利用をしているCCTouchクラス。 cocos2dではUITouchクラスを同じように利用をしていました。大きな違いはないのですが、マルチタッチの場合に利用するタッチの識別方法が少し違います。 [c]

//cocos2dの場合 int touchNumber = [touch hash];

//cocos2dxの場合 int touchNumber = pTouch->getID();

[/c]

最後に

cocos2dx内に、プロジェクトを作成してそれのiosxcodeで読み込んで使っているのですが、別のプロジェクトを作成しようとすると上手く立ち上がらないのは、何か問題があるのか、もとから出来ないのか。 この辺りが少しメンドクサイ。 今日はインターフェイスの部分は大体思った通りいったので、次はCCTMXLayerの表示に取り掛かる予定です。

cocos2d-xによるiPhone/Androidアプリプログラミングガイドcocos2d-xによるiPhone/Androidアプリプログラミングガイド
清水 友晶

マイナビ 2013-06-18
売り上げランキング : 930

Amazonで詳しく見る