× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
cocos2d-xにあるSpriteBatchNodeクラス。
複数のスプライトを効率よく描画したいときに使う。 例えば同じ絵のキャラを大量にわらわらと表示させたいとき。 SpriteBatchNodeクラスのインスタンスのノードを作り、このクラスにテクスチャを登録する。 その子ノードに同じテクスチャを貼ったスプライトを大量に付ける。 すると、一度の描画命令で子ノードが全部描画できる。 ポイントは、SpriteBatchNodeクラスに登録したテクスチャと 「同じテクスチャ」を持つノードしか子ノードにできないこと。 テクスチャでなく、SpriteFrameでも良い。アニメーションする場合や、複数の絵を子ノードに並べたいときはSpriteFrameを使うことになるだろう。 実際に描画回数が減っているかどうかは、 画面左下に出ている。 GL calls が描画回数、 GL verts が頂点数。 GL callsがテクスチャ数より少なくなっていれば、効いている…はず 詳しいところはもう少しコードを追いかけてみる。 ちなみにLabelクラスはSpriteBatchNodeの子クラスである。 …といったところで、 v3.xでは標準でドローをまとめる機能がついたらしく、SpriteBatchNodeは非推奨になったとかなんとか。 参考 PR |
|