Cocos2d-x v3 プロパティ宣言の方法( property) 言語C++
こんにちは、iPhoneアプリ開発者の中川です。
今日はCocos2d-x v3 におけるヘッダーファイル(HelloWorld.hなど)へのプロパティ宣言について学んだので記録。 現在勉強中の本はこちら。
まずは、プロパティ宣言ってなんぞや?ってのはわかりやすいサイトがいくつもあるので省略するとして、簡単なイメージはObjective-cでいうところのこれです。
1 |
@property (weak, nonatomic) IBOutlet UIImageView *mainImage; |
特にInterfaceBuilderで部品をポチポチ置いている人にはプロパティ宣言は深い意味がわかってなくても使いたいところ。
さてさて。細かい概念の説明はさておき、さっそくソースコードから。
1 2 3 4 5 6 7 8 |
public:
CC_SYNTHESIZE(cocos2d::Vector CC_SYNTHESIZE(int, _score, Score); CC_SYNTHESIZE(float, _second, Second); CC_SYNTHESIZE(bool, _isCrash, IsCrash);
CC_SYNTHESIZE_RETAIN(cocos2d::Sprite*, _player, Player); CC_SYNTHESIZE_RETAIN(cocos2d::Label*, _scoreLabel, ScoreLabel); CC_SYNTHESIZE_RETAIN(cocos2d::Label*, _secondLabel, SecondLabel); |
CC_SYNTHESIZE、CC_SYNTHESIZE_RETAINを使えば良いわけです。
厳密に言えばいろいろあるのですが、intやfloat、boolなど参照するだけならCC_SYNTHESIZEを使う。SpriteやLabelなどのオブジェクトの場合はCC_SYNTHESIZE_RETAINを使うという理解でだいたいOKだと思います。
※ CC_SYNTHESIZE_RETAINを使った場合はcppファイルのデストラクタ(~がつくメソッド)でRELEASEすることを忘れずに。
1 2 3 4 5 6 |
MainScene::~MainScene() { CC_SAFE_RELEASE_NULL(_player); CC_SAFE_RELEASE_NULL(_scoreLabel); CC_SAFE_RELEASE_NULL(_secondLabel); } |
ディスカッション
コメント一覧
まだ、コメントがありません