0

複数のスプライトに単一のタイマーまたはスケジューラーメソッドを使用できるかどうか知りたいですか?私が現在ゲームに取り組んでいて、スプライトがいくつあっても、それらすべてのスプライトに対していくつかのアクションを実行したいのと同じように、スプライトと同じ数のタイマーまたはスケジューラーを使用する必要がありますか?または、単一のタイマーまたはスケジューラーのみを使用してジョブを実行するにはどうすればよいですか?メソッドをスケジュールしてそれを使用する場合、10個のスプライトと言いますか?パフォーマンスに影響しますか?

4

1 に答える 1

0

これはほとんどのゲームで共通です。通常、類似したオブジェクトのリストを使用して、異なる操作を行います。パーティクル システムはこのように機能し、単一のオブジェクトですべてのスプライトの位置を更新します。私のゲームでは、多くのオブジェクトがあり、同じタイプであっても、それぞれに独自の更新機能があります。

for (GameObject* object in objects)
    [object update:dt];

問題が発生した場合、または重い処理を行うことがわかっている場合は、最適化する必要があるパフォーマンスの問題だと思います。このようなものは更新関数にある可能性があり、関数呼び出しが少なくなり、おそらくより効率的になりますが、最初に最適化しようとするものはおそらく描画側ではなく描画側になるため、それほど価値があるとは思いませんロジック側 (スプライトバッチやパーティクル システムのように)。

for (CCSprite* sprite in sprite)
{
    sprite.x = someVariable;
}
于 2012-08-04T19:20:08.580 に答える