cocos2d-xで見つけた新機能 Part1

おはこんばんちは!

GT2の組長こと鈴木翔也です!!

最近見つけたcocosd2d-xの機能を紹介していきたいと思います。

私が最近見つけた機能はこちら

globalZoder SpriteBatchNode

です!!

2回にわたってこの機能を紹介していきたいと思います。

まずはglobaZoderです。

ゲームプログラミングをしたことある人はZoderというものを聞いたことがあるかもしれませんがこれはそれの拡張版だと思ってください。

cocos2d-xの親ノードに依存するものでこのZoderは親ノードに依存しないものとなっております。

例えですが親ノードが二つあり、それぞれにZoderに0と1の値を入れておきます。

スクリーンショット 2016-08-02 13.23.21

ここにSpriteの子供を二つ追加します

そしてZoder 0の親にもう一つのSpriteより前に描画されるようにZoderに大きな値を入れます
スクリーンショット 2016-08-02 13.34.29

結果

スクリーンショット 2016-08-02 13.34.42

Unityちゃんが前に出るようにするためにZoderを大きくしたにもかかわらずHelloWoeldが前に描画されました。

このことから親のZoderに依存し、Unityちゃんの親のZoderよりHelloWorldの親のZoderが大きいため先に描画されたのがわかります。

さてここからが本題でglobalZoderとはこのいぞんとは関係なく描画してくれるというものとなります。

このglobalZoderは負、0、正の3つで構成されています。

これはあまりZoderとかわりありません。

このglobalZoderは何も設定していなければ0になります。

描画順は 負⇨0⇨正となっております。 これもあまりZoderと変わりません。

ではこのglobalZoderを使ってUnityちゃんを前に描画してみたいと思います。

UnityちゃんのglobalZoderを1にして

スクリーンショット 2016-08-02 13.48.25

いざ実行!!

スクリーンショット 2016-08-02 13.48.56

Unityちゃんが前に描画されました!! やった!!

このようにglobalZoderは親に依存せずZoderを決められるというものでした!

まとめ
親に依存しないため親のせいで前に描画、もしくは後ろにびょうがされているものを前に持ってくることができます。

しかししっかり管理しないと前で描画したいものも一緒に後ろにやってしまうことがあるので注意が必要です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です