タワーディフェンスっぽいものを試作していたのですが、タワーからの攻撃を実装したあたりで問題が
攻撃の弾が沢山出るとout of memoryになって強制終了してしまう
またはものすごく処理が遅くなるのです
最初は単純に弾が多すぎるのかなーと思ってただけなのですが、ちょっと違うみたい
なぜなら、弾のスプライトを消去して、画面上にあるスプライトの数が減っても相変わらず処理が遅くなったままなのです
結局、原因はくだらないミスで
弾を生成した時に同時に生成していたスレッドのオートリピートをtrueにしていたというオチ・・・
弾が出来るたびにスレッドが増えてりゃそりゃ落ちるわな・・・
繰り返しスレッド
registerUpdateHandler(new TimerHandler(1f/60f,true,new ITimerCallback() { @Override public void onTimePassed(TimerHandler pTimerHandler) { // 繰り返し行う処理 } } }));一度だけのスレッド
registerUpdateHandler(new TimerHandler(1f/1f, new ITimerCallback() { @Override public void onTimePassed(TimerHandler pTimerHandler) { // 一度だけ行う処理 } }));
ちなみにAndEngineでつくるAndroid2Dゲームの巻末のこれに関する付録が少し間違ってるようなので注意
(TimerHandlerの部分がCustomTimerHandlerとなっている)
0 件のコメント:
コメントを投稿