ここでのコンテキストは、Starling FrameworkとともにActionscript 3.0(IDE:Flashbuilder)です。AS3タイルマップレンダリング(1000のタイル付き)
だから、私はプラットフォームやそれに類するものに使用できるタイルマップを作成したいと思います。
800x600ピクセルのステージで8x8ピクセルのタイルを使用したいのですが、問題は、フレームレートを大幅に下げることなく、これらの7500+タイルオブジェクトをステージに追加する方法がわからないことです。
パフォーマンスの低下は、各タイルオブジェクトを初期化するのではなく、各タイルをステージに追加することによって得られることがわかりました。
多くの具体的な情報は提供していませんが、パフォーマンスの低下なしに何千もの静的オブジェクトをステージに描画する標準化された方法があるかどうかを確認しています。私は方法があるように感じ、私はまだそれを見つける必要があります。
更新:あなたの種類の助けのすべての後
、私は偉大な解決策になると思われるものを発見しました。最初は、Amyのソリューションを実装したいと思っていました。copyPixels()とdraw()を使用してマップ全体に対して1つの大きなビットマップデータを作成し、それを画面に描画しました。しかし、StarlingとNative Flashを混在させる必要がなければ、すべてがもっと簡単になるので、これに相当するStarlingがあるかどうかを知りたかったのです。
StarryのRenderTextureクラスをもう一度見て、そのdrawBundled()とdraw()メソッドを使って、すべてのタイルをRenderTextureに簡単に描画できることを発見しました。 RenderTextureをImage(Starling's Image Class)に入れ、その画像を画面に追加するだけです。
その解決策は、私が以前に試みたスプライトの平坦化などの愚かな低速ソリューションより100万倍高速です。レンダリングテクスチャのイメージが画面に表示されている間は、初期化時間が速く、フレームレートが低下しないようです。
これでテストしたいのは、ゲームプレイ中にタイルのグラフィックスを更新するのが簡単な場合です。水がソース(または何か)から広がり、 "Grass"タイルが "Water"タイルにならなければならない場合、RenderTextureとそのイメージは何らかの遅れスパイクやパフォーマンスのいらつきなしに外観を変えることができます。私はすぐにこれをテストします。
ありがとうございました!
ありがとう、このような出発点は、正しい方向に私をプッシュするだけで私が必要なものです! – Brucef
あなたは大歓迎です:) –
今、スターリングフレームワークでネイティブフラッシュ表示オブジェクトを使用する方法を理解する必要があります。 – Brucef