Android用のAS3とAir 3.2を使用してフラッシュCS6でゲームを作成しました。このゲームでは、別のメニューに移動し、死ぬとメインメニューに戻ってスコアが表示され、新しいキャラクターを選択してプレイするとスコアが表示されますモンスターの速度が2倍に!?!?
理由はありますか?コードの一部を提供できますが、どの部分が問題なのか本当にわかりませんか? 削除されなかったのはイベントリスナーでしょうか?
レベルオフを開始するために呼び出される関数は次のとおりです
public function startLevel1( navigationEvent:NavigationEvent ):void
{
//classSelect = null;
removeChild( classSelect );
levelManager = new LevelManager( heroGra, hero);
addChild( levelManager );
levelManaOn = true;
gameTimer = new Timer( 30 );
//On every 30ms we call apon moveEvent function
gameTimer.addEventListener( TimerEvent.TIMER, tick );
gameTimer.start();
}
これは、モンスターの更新された関数を呼び出す、削除されたティック イベントです。
public function tick( timerEvent:TimerEvent ):void
{
if(levelManaOn == true)
{
levelManager.update();
if(hero.hp <= 0)
{
trace("DEAD");
onScoreState();
levelManaOn = false;
removeEventListener( TimerEvent.TIMER, tick );
}
}
}
ティックイベントから、この関数を呼び出します
public function onScoreState( ):void
{
scoreState = new ScoreState();
scoreState.waveCompletedScore.text = levelManager.level.score.toString();
//
scoreState.addEventListener( NavigationEvent.ENDGAME, backMainMenu );
addChild( scoreState );
removeChild( levelManager );
}
これにより levelManager が削除されますが、それでもモンスターは 2 倍の速度で移動し、死亡後に最初からやり直すたびに、速度が再び 2 倍になります。
読んでくれてありがとう
キャンバス