2

actionscript 2 を使用してフラッシュで大規模なタイルベースのマップを作成するための最良の方法は何でしょうか。

私の現在のコードでは、35x35 (1225 ムービークリップ) を超えるマップは遅延し始めます。マップは単純な多次元配列から作成されます。

var map = [[95,23,25,23,16,25],[95,23,25,23,16,25],[95,23,25,23,16,25]];

このプログラムは、タイルのムービークリップを作成し、適切なフレームに移動して、プレーヤーの位置を基準にしてタイルを配置するだけです。各タイルには「walkable」という 1 つのプロパティがあり、プレイヤーがその上を歩くことができるかどうかを決定する true または false のいずれかです。これらのタイルは、ホルダー ムービークリップの子です。プレーヤーが移動すると、ホルダーのムービークリップが移動します (それに含まれるタイルの数に関係なく)。

大縮尺のマップでラグを減らすにはどうすればよいでしょうか?

4

1 に答える 1

1

一度に大きなマップのごく一部しか表示されない場合は、現在表示されているタイルの子ムービークリップ タイルのみを作成し、ビューポートの移動に合わせてそれらを追加/削除します。

一方、すべてを一度に表示する場合は、BitmapDataクラスを使用して、すべてのタイルを 1 つの大きなムービークリップにグラフィカルにコピーする必要があります。次に、ムービークリップ タイルを削除して、Flash が 1 つの大きなムービークリップだけをスクロールするだけで済むようにします。

タイルが何であるかに応じて、関連するすべてのムービークリップcacheAsBitmapを割り当てるとともに、true に設定して実験することもできます。opaqueBackground

于 2013-03-23T04:57:10.787 に答える