我正在爲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類示例。
該代碼工作正常。我有一個新遊戲活動按鈕。當我第一次進入活動時,它是有效的。但如果我退出遊戲並再次進入速度更快,那我不會理解或不理解的東西。如果我退出遊戲並使用New Game按鈕再次輸入,速度會更快。
任何人都可以幫助我嗎?
感謝您的鏈接。我會研究他們。我設法解決onPause和使用postDelay的問題。這是我的新的RefreshHandler類。 –