0

そこで、ゲーム タイルである他のスプライトを追加するスプライトを作成しました。各タイルのサイズは 60 x 60 ピクセルです。その結果、約 200 個の子 (これらのタイル) を持つスプライトができました。startDrag() を実行しようとすると、コンテナ スプライトを移動する際のラグが非常に目立ちます。

コンテナが 200 ではなく 1 つの子スプライトを持つようにタイル スプライトを結合する方法はありますか? おそらくラグが非常に大きいため、200 個のタイルすべてを移動 (x と y を変更) する必要があります.. 私は正しいですか?

この場合、ユーザーがマップをズームインまたはズームアウトできるため、cacheAsBitmap プロパティを使用できません。

4

3 に答える 3

3

グリセリンとオーレルは、実際のソリューションの核心に触れています。ただし、追加したいのですが。

ちなみに、コンテナを移動するときに非常に多くのスプライトの場所を管理する必要があると言ったとき、あなたは正しいです。CacheAsBitmapは確かにこれにかなりの程度取り組んでいますが、実際の解決策はブリッティングです。そのためにこのリンクを試してください:

http://www.adobe.com/devnet/flash/articles/blitting_mc.html

ユーザーズームなどが必要かどうかは関係ありません。ビットマップデータと元のベクトルスプライトをいつでも切り替えることができるからです。あなたの問題はmoving.managinglotsaスプライトで発生するので、それを行う直前に最適化を使用し、その後、それらを自分自身に戻してください。

于 2010-11-13T19:17:14.990 に答える
1

私は以前に同じ問題を抱えていました。ある意味で、それらを「結合」することは可能ですか?

200個のスプライトを画面に追加すると、それらすべてを別の親スプライトに入れると思います。

この時点で、すべてのスプライトのスナップショット、スクリーンショット、または写真のレプリカ(呼び出したいものは何でも)を取り、画像(bitmapData)を親スプライトに書き込みます。この時点で。元のスプライトを削除/削除/非表示/無効にすると、ビットマップデータを含むスプライトが残ります。

動き回ったりズームしたりする大きな画像が1つあります。

コードが必要な場合は、質問してください。それは時間のかかるコードなので、最初に教えてから、それを書きます:P

于 2010-11-13T18:40:27.927 に答える
0

うーん、それらに参加するのは実際にはかなり難しいでしょう...グラフィックス、コード、およびすべてを取得して、それを親に入れる必要があります...

私はそれが問題だとは思いません - あなたは何か他のことをすべきです... この場合、「タイル」とは、親がタイルマップになることを意味していると思いますよね?したがって、おそらくタイル タイプを含む 2 次元配列 (配列の配列) を持っているでしょう。初期化時にその配列を解析する代わりに、たくさんのスプライトを作成し、各フレームで再解析を試みます (その方が高速です)。見ることができるスプライト。つまり、それらの X 位置 (ズームとカメラ X を追加した後) は-sprite.widthより大きく、高さもズームによってスケーリングされ、stage.width + sprite.width (ズーム後の幅)より小さくなります。 . 同じことが Y にも当てはまりますが、高さの属性のみです。

于 2010-11-13T16:36:45.760 に答える