Я работаю над мини-игрой для 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.
Код работает нормально.У меня есть кнопка «Активность для новой игры».Когда я впервые вхожу в активность, это работает.Но если я выйду из игры и снова введу скорость, то я не пойму и не пойму.Если я выйду из игры и войду снова с помощью кнопки «Новая игра», скорость будет еще выше.
Может кто-нибудь помочь мне с этим?