gpt4 book ai didi

安卓游戏循环休眠

转载 作者:行者123 更新时间:2023-11-29 02:09:32 25 4
gpt4 key购买 nike

我正在为 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 类示例。

代码运行正常。我有一个新游戏按钮的 Activity 。当我第一次进入 Activity 时,它是有效的。但是,如果我退出游戏并再次进入,速度会更快,这是我不会或不理解的事情。如果我退出游戏并使用新游戏按钮再次进入,速度会更快。

谁能帮我解决这个问题?

最佳答案

我已经设法解决了覆盖 Activity 中的 onPause 的问题。这是新代码:

class RefreshHandler extends Handler {
Handler h = new Handler();
Run run = new Run();

class Run implements Runnable {

@Override
public void run() {
// TODO Auto-generated method stub
Panel.this.update();
Panel.this.invalidate();
}
}

public void sleep(long delayMillis) {
h.postDelayed(run, delayMillis);
}

public void sleepCanceled() {
h.removeCallbacks(run);
}
};

关于安卓游戏循环休眠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com