2011-11-14 7 views
1

私は機能的なActionscript 3を使用しており、ユーザーがレベルにトラックを残しているゲームをしています。Flashムービークリップのビットマップを置換する

しかし、トラックはアレイ内のオブジェクトで、大きくなり、大きくなります(時間の経過とともにゲームが遅くなります)。レベルビットマップにどのように塗りつぶすことができますか?また、再起動時にビットマップをリロードする方法は?

日間の回答を検索しましたが、1つを見つけませんでした。

私は、ムービークリップオブジェクトでそれを交換する方法ではないビットマップを組み合わせて、ステージにそれを追加する方法を知っているが、:

var newLevel:BitmapData = new BitmapData(grassLevel.width, grassLevel.height); 
var newDebree:BitmapData = new BitmapData(debree.width, debree.height); 
newLevel.draw(grassLevel); 
var position: Matrix = new Matrix(1,0,0,1, user.x, user.y); 
newLevel.draw(debree, position); 
var bm:Bitmap = new Bitmap(newLevel); 
addChildAt(bm, 21); 
+0

質問 - 上記のコードは、ループ内でそのコードブロックを実行していますか? (私はあなたにそれをより明確にするための擬似コードを書いておきたいので尋ねます) –

+0

私が望むことをしないので、私はそのコードを実行していません。私が知っていたことを示していただけだった。ブリジットリードに感謝します。それについて読んでいるが、それはまだ走っていない。私はまだムービークリップオブジェクトのビットマップを置き換える方法を知らない。 – Zuul

+0

Gotcha。あなたが書いたコードは、実際には非常に近いです。いくつかの微調整で、あなたはそれがあなたが望むことをすることができます。 –

答えて

3

あなたがするブリッティングに重く見てみたいとしていますあなたがしたいこと。メモリ内にトラックのコピーを1つ作成し、複数の場所にblitすることができます。とにかくビットマップを独占的に使用しているので、これが最善の策だと賭けています。

あなたがステージにあなたがイメージを更新するたびに新しいビットマップを追加する必要はありませんhere.

注意をブリッティングには良いチュートリアルがあります。実際には自動的に更新されるはずです。

関連する問題