私はAndroid用のミニゲームに取り組んでいます。このコードをゲームループに使用しています。
private RefreshHandler mRedrawHandler = new RefreshHandler();
class RefreshHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Panel.this.update();
Panel.this.invalidate();
}
public void sleep(long delayMillis) {
this.removeMessages(101);
sendMessageDelayed(obtainMessage(101), delayMillis);
}
};
public void update() {
if (mMode == RUNNING) {
ball.update(NR_PIX);
for (int i=0; i<N; i++) {
bords[i].update(NR_PIX);
}
Panel.lastBordHeight -= NR_PIX;
if (mYBrickOffset == 0)
mYBrickOffset = mYBrick;
mYBrickOffset -= NR_PIX;
mRedrawHandler.sleep(mMoveDelay);
}
}
RefreshHandlerクラスは、SnakeViewクラスの例からのものです。
コードは問題なく動作します。新しいゲームボタンのアクティビティがあります。私が最初にアクティビティに入るとき、それは機能します。しかし、ゲームを終了して再び速度を入力すると、速度が速くなります。これは、私にはわからないことです。ゲームを終了し、[新しいゲーム]ボタンを使用して再度入ると、速度はさらに速くなります。
誰かがこれで私を助けることができますか?