2011-11-14 13 views
0

ok私はタワー防衛ゲームを作成しています。私は私がもう必要ないオブジェクトを削除する方法を考えていました(つまり、弾丸オブジェクトがターゲットすべてのIM行くオブジェクトを不可視に設定しています)。約1.5Kのオブジェクトの後に遅くなり始めます。AS3のゲームが遅い(多くのオブジェクト)

私は少しの研究をしましたが、それらはどこにも存在しない方法のようです。あなたは何をお勧めしますか?あなたは、ステージからオブジェクトを削除し、それへのすべての参照が削除に設定されていることを確認する必要があり

おかげ

+0

あなたはどんなゲームライブラリを使用しているか、これはすべての普通の表示スタックにありますか? .visibleプロパティをfalseに設定していますか? – Hawks

+0

はい、ライブラリがありません – dgamma3

+0

[オブジェクトプール](http://www.google.com/search?client=safari&rls=en&q=as3+object+pool&ie=UTF-8&oe=UTF- 8) –

答えて

2

。これには、イベントリスナー、子表示オブジェクトの削除、および内部コードの実行の停止が含まれます。オブジェクトはgarbage collectionの対象となります。ですから、例えば

if(myBullet has hit tower) { 
    removeChild(myBullet); 
    myBullet.removeEventLister(someEvent, someFunction); 
    myBullet.stopSpinning(); 
    myBullet = null; 
} 
+1

また、弾丸に内部表示オブジェクトがある場合は、弾丸からも削除する必要があります。そうしないと、弾丸のchildenの親プロパティでガベージコレクションによって収集されないようになります。 – WORMSS

+0

良い点、ありがとう。 – shanethehat

関連する問題