cocos2d-x Zオーダーとタグ番号
2017/10/25
Zオーダーとタグ番号に関してです。
まずは、スプライト(Sprite)を画面(Layer)に表示させる手順を例としてあげますが、これは、
シーン・レイヤー・スプライトとは
の記事でも記載はしてありますが、使い方を改めてメモ。
ということで再度記載しました。
// Rectは画像を切り取る関数ですが、引数は // (切り取りスタートのx座標,切り取りスタートのy座標,切り取る幅,切り取る高さ)です。 // ①Spriteを定義します。 // 使い方:Sprite *stage = Sprite::create(ファイル名, ファイルから切り取った部分); Sprite *stage = Sprite::create("splash.png", Rect(0, 0, 320, 480) ); // ②どこに配置するかを決めます。 // 切り取った画像のど真ん中をどこに配置するかポジショニングします。 // 下記の場合 // x座標:origin.x + visibleSize.width/2 は原点(画面左下)から画面の半分横にプラスしたところ。 // y座標:origin.y + visibleSize.height/2 は原点(画面左下)から画面の半分上にプラスしたところ。 // 使い方:stage->setPosition(Point(原点(画面左下)からのx座標, 原点(画面左下)からのy座標)); // とか、 stage->setPosition(cpp(中心座標のx軸,中心座標のy軸)); stage->setPosition(Point(origin.x + visibleSize.width/2, origin.y + visibleSize.height/2)); // ③レイヤーにスプライトを追加します。 // 使い方:addChild(a, Zオーダー, タグ番号); // *Zオーダーとタグ番号は省略しています。 this->addChild(stage);
このなかで、Zオーダーとタグ番号に関して調べてみたのでメモ。
目次
●Zオーダー
Zオーダーは画像(コントロール)の前後に関係するもので、Zオーダーの値が大きいほど手前にくる。
どういったときに使うかと言うと、例えば、カードが重なって表示される場合の前後の順番を決めるときなどに使い、クリックしたカードを一番手前に表示するとか、そういうときに使うようです。
これは覚えておこう。。
●タグ番号
タグ番号は画像に対する識別子。だそうです。
そのまんま。識別するためのものなんでしょう。。
これらをenumで定義しているのを見ました。
// GameScene.h // ~省略~ protected: enum kTag { // 画像のタグ kTagBackGround = 1; }; enum kZOrder { // Zオーダー kZOrderBackGround; } public: // ~省略~
こんな感じ。ついでにenumに関しても。
●enum(列挙型)
どうしてenumなどが有効なのか。
いくつかの選択肢があった場合、選択肢以外の値を限定するため。らしい。
そのあたりは下記を参考に。。。
http://homepage2.nifty.com/well/enum.html
例えば下記のようなものがあったとすると、
// enum タグ名 // { ~略~ // } 変数 enum kHogeHoge { kHogeRed //←デフォルトで0 kHogeBlue //←デフォルトで1 kHogeYellow //←デフォルトで2 } hogehoge;
ということらしい。また、下記のようになると、
enum kHogeHoge { kHogeRed //←デフォルトで0 kHogeBlue = 5 ; //←5 になる。 kHogeYellow //←6 になる。 } hogehoge;
ということらしい。