私は単純なゲームを作成しています。最初に実行すると、問題なく完全に実行されます。レベルを完了すると、ハイスコア画面が開き (以下の run() メソッド)、次にゲームをプレイするときに、最初のラウンドの約 5 分の 1 の速度で実行されます。どちらの場合も完全に実行されるタイマーである別のスレッドがあります。私はコードを調べましたが、2回目のラウンドで実行が遅くなる理由が見つかりませんか? 何か案は?
以下は、メニュー画面からレベルを開くコードです。
public void fieldChanged(Field inField, int inContext){
final int level;
if(inField == button1)
level = 1;
else
if(inField == button2)
level = 2;
else
if(inField == button3)
level = 3;
else
if(inField == button4)
level = 4;
else
level = 0; //Ensures variable is initialised
game = new Game(level);
UiApplication.getUiApplication().pushScreen(game);
_invokeID = getApplication().invokeLater(new Runnable(){
public void run(){
if (game.getActive() == false){
getApplication().cancelInvokeLater(_invokeID);
getUiEngine().popScreen(game);
Dialog.inform("Final Score: " + String.valueOf(game.getScore()));
hs = new HighScore(game.getScore(), game.getTime(), level);
UiApplication.getUiApplication().pushScreen(hs);
game = null;
}
}
}, 500,true);
}