久しぶりに本当にcocos2dxの話です。
cocos2dxでコードベースでUIの実装をしていて、思い通りに配置出来ない事ってかなり有ると思うんです。
cocostudioとかを使わずに、の話ですね。
そう言う時に、「このノードはこのPositionにこのSizeで存在すると自分は思っているけど本当にあるのだろうか?」と言う疑問は自然に湧いて来ると思います。
そして、それを確認するために「背景色を設定してやれば良い」と言う発想が思い浮かびます。
この時に特にiOS上がりの人が考えるのはそのインスタンスに対してsetBackgroundColorを投げたいと思うんですが該当のメソッドは存在しません。
が、setColorと言うメソッドがあります。
これだ!と思い、投げてみるもまったく背景色は変わらず。
結論、setColorは背景色を変えるメソッドではありませんので他の方法を考えます。
ここでたどり着いた答えがLayerColorです。
LayerColorはその名の通り、色の付いたLayerクラスです。
つまり、考え方的にはこうなります。
そのNode自体の色を変える事は出来ない。(LayerColorを継承する以外で出来るのならば、まだ知らないので教えて欲しいです。)
そうではなくて、上から色付きのLayerをかぶせてやる事で位置を確認する、と言うアプローチです。
コードにすると以下の感じ。
// Color4Bで色、後は確かめたいNodeのwidth, heightを指定
LayerColor* lc = LayerColor::create(Color4B(255, 0, 0, 128), searchNode->getContentSize().width, searchNode->getContentSize().height);
// searchNodeの真ん中にsetPositionする
lc->setPosition(/*center of searchNode*/);
// addChildする
searchNode->addChild(lc);
Color4Bについて分からない人は以下に書いてあるのでどうぞ。
色指定について
誰かのお役に立てば。
コメント