2009-06-29 8 views
0

私は、フラッシュの宇宙環境で2Dマルチプレイヤーゲームを作成しています(Flex Builder 3を使用したアクションスクリプト3)。プレーヤーのキャラクター(船)は常に中央に位置します。船が動いているように見なければならないので、実際には常に中央にありますが、背景とすべての環境オブジェクトは逆の方向に動かなければなりません。2D actionscript/flex 3(フラッシュ)ゲームで地図スクロールを作成する方法は?

これを行う方法に関する私の考えは、環境内のすべてのオブジェクトへの参照を含む配列を作成することです。これらはループされ、その位置は船の動きの反対方向に変更されます。

しかし、これは滑らかに見えないか、または遅すぎると思います。それはおそらく "吃音"を引き起こすでしょうか?そのため、そのようなシステムの開発を始める前に、より良い選択肢があるかどうか、あるいは誰かが私がしたいことを経験しているかどうかを知りたいと思います。

ありがとうございます。

答えて

2

いいえ、これは最も効率的なアプローチです。パフォーマンスを向上させるために、画面に表示されないすべてのアイテムを非表示にします。これらのオブジェクトが移動する場合は、flash.display.DisplayObject::cacheAsBitmapを使用してください。

代わりに、すべてのアイテムを1つのスプライトに入れ、それをマスクしてからスプライトの周りを移動することができます。これは、あなたの世界が限られていれば正常に機能します。小さな...ので、私は推測する、それが何のオプション...

greetz

back2dos

012ません
+0

docからの引用:「cacheAsBitmapプロパティは、静的コンテンツがほとんどで、頻繁に拡大縮小および回転しないムービークリップで最もよく使用されます。 - 残念ながら、私のオブジェクトは多く回転します。 – Tom

0

まあ、すべてのオブジェクトを追跡する必要がありますが、実際には、実際には少量しか心配する必要はありません。

これを行う簡単な方法の1つは、プレイエリアを象限のグリッドに分割することです(使用するエンドの数はあなた次第です)。単一の象限は、複数の異なる表示要素を含むことができる。次に、あなたの船がどの四角に位置しているのか把握するだけです。そこから船の周りの領域を描いてスキャンする必要がある四分円の最小数を知ることができます。

要素がプレイエリアの周りを移動するとき、要素がどこに配置されているかを常に更新する必要があります。

0

マルチプレイヤーゲームであるため、Branden Hallのアプローチは、プレーヤーの周囲に別の船が存在することの通知を簡単に送信できるため、ニーズにはるかに適しています(ユーザーにビューポートのサイズにもよりますが、画面上の象限の数が変わる可能性があるので、現在の象限の境界線をチェックして、隣接する四分円が表示されているかどうかを確認する必要がありますビューポート。

関連する問題