2009-07-20 3 views
0

私はactionscript/flex 3(フラッシュ)で宇宙のゲームを作成しています。地図はないので、世界は無限大です。これがうまくいくためには、私は動的に(プログラム的に)背景をレンダリングする必要があります。これは空白のように見える必要があります。Howtoは動的に背景をactionscript3にレンダリングしますか?

世界を実際に感じさせ、特定の場所を他のものと違ったものにするために、私は色の違いや恐ろしい種類の変換などのフィルタを追加できなければなりません。

プレイヤーは、世界の特定の部分を一度のみ表示されますが、プレイヤーがどこにでも行くことができているように、画面の両側に飛んで「マップ」「スクロール」することができます。スクロールは、プレイヤー以外のすべてのオブジェクトを反対方向に移動させることで動作し、その方向に移動したプレーヤーのように見せます。バックグラウンドも移動する必要がありますが、新たに発見された地形(動的に作成された地形)で異なる必要があります。

は今、私の質問は、私はこのような何かをするだろうか、物事のどのような私が使用する必要がありますされ、どのように私はそれらを実装していますか?さらに多くのオブジェクトがゲームに登場するため、パフォーマンスも考慮する必要があります。

答えて

1

可視領域内にあるオブジェクトのビューのみが必要です。そのためにはquad treeを使用するとよいでしょう。

背景には、多分あなたは、多かれ少なかれランダムに繰り返すことができることを、タイルのセットで構成されなければならない(あなたが本当に実際に?いくつかの粒子が十分では持っていないだろう、背景が必要なのでしょうか?)。ここではオブジェクトと同じテクニックを使用します。

だから最後に、あなたは(あなたが最初に発生するであろうと)オブジェクトやタイルや粒子のためのモデルを持つ羽目になる。この方法では、いくつかの浮動小数点数を追加するだけです(オブジェクトの位置を計算しないと、追加のパフォーマンスが得られますが、これは遠方にあります)。ビューを持つオブジェクトがステージから離れた場合は、ビューを解放し、新しいオブジェクトが表示されているかどうかを確認するためにクワッドツリーを使用します。

あなたがオブジェクト/粒子を大量に使用している場合は、object poolを使用することを検討してください。オブジェクトだけが移動し、回転/拡大縮小されていない場合は、DisplayObject::cacheAsBitmapを使用することを検討してください。

+0

もう一度おねがいします。私は近くにあるオブジェクトだけを読み込む技術を使用しており、可視領域を離れたオブジェクトもアンロードされます。 このような動的背景を生成する方法を教えてください。 – Tom

+0

私はhttp://flashden.net/item/dust-particles-effect-background-animation/30399のようなものを意味します。プレイヤーが静止しているときには、背景が動かないようにしてください。 – Tom

関連する問題