1

AS3 でカスタムのシンプルな 3D エンジンを可能な限りシンプルに構築しています。Graphics ですべてを描画し、Bitmap と BitmapData でレンダリングします。

z (深度) 位置で描画順序を並べ替えるには、Sprite の Transform インスタンスの getRelativeMatrix3D を使用します。ここに私の質問があります: 多数の Sprite インスタンスを作成するが、それらをステージの子として追加しない場合、パフォーマンス速度が低下しますか?

もしそうなら、スプライトを子として追加せずに再注文するより効率的で便利な方法はありますか?

そうでない場合は、教えてください。

ありがとう!:)

4

1 に答える 1

1

コメントで@Neilによって正しく指摘されているように、ディスプレイリストに追加されていない(ステージに追加されている)オブジェクトは、レンダリングパフォーマンスに影響を与えません。

ただし、newでオブジェクトを作成するには、常に時間がかかります。したがって、フレームごとにある種の1.000オブジェクトを作成するだけの関数を作成すると、パフォーマンスが大幅に低下する可能性があります。

ただし、これはすべての言語に当てはまります。したがって、経験則として、必要な場合にのみ新しいオブジェクトを作成する必要があります。

また、不要になったオブジェクトを再利用することもできます。オブジェクトプールパターンを見て、私が何を意味するかを確認してください。例として、オブジェクトプールは、横スクロールの弾丸によく使用されます。しかし、そのようなことは実際にはパフォーマンスの向上の一部です。したがって、時間が足りず、ユーザーからの苦情がない場合は、リファクタリングフェーズでそのような最適化を行います。またはあなたはただすぐにそれをします、あなたの選択;)

于 2012-07-11T14:50:55.543 に答える