gpt4 book ai didi

java - 和引擎更新

转载 作者:行者123 更新时间:2023-11-29 03:34:21 26 4
gpt4 key购买 nike

我正在尝试学习 AndEngine 并一直在研究示例。我正在修改的是PhysicsJumpExample

我想做的是每 X 秒运行一次。我做了一些搜索,发现有人建议:

this.scene.registerUpdateHandler(new IUpdateHandler() {
@Override
public void onUpdate(float pSecondsElapsed) {
// TODO Auto-generated method stub
//Your code to run here!
}

但我发现我不能这样做可能是因为:

this.mScene.registerUpdateHandler(this.mPhysicsWorld);

我将如何每 X 秒运行一次代码?

提前致谢

最佳答案

您可以像这样注册一个计时器处理程序:

protected Scene onCreateScene() {
Scene myScene = new Scene(); // somewhere you create your scene
float xSeconds = 5.5f; // meaning 5 and a half second
boolean repeat = true; // true to reset the timer after the time passed and execute again
TimerHandler myTimer = new TimerHandler(xSeconds, repeat, new ITimerCallback() {
public void onTimePassed(TimerHandler pTimerHandler) {
methodWithStuffToDo();
}
});
myScene.registerUpdateHandler(myTimer); // here you register the timerhandler to your scene

.... // some other stuff
return myScene;
}

然后你在你的场景中编写一个方法来实现你想要在计时器结束时执行的代码:

public void methodWithStuffToDo(){ ... }

解释:

TimerHandler 将在更新线程的onUpdate方法中被检查。当接近指定时间(此处为 5.5 秒)时,将触发 onTimePassed 方法。我说 close,因为 UpdateThread 不一定精确到最后一个毫秒。这与您的代码中的建议基本相同,不同之处在于 TimerHandler 将实际处理更新方法并决定何时执行操作(这比创建自己的 UpdateHandler 更简单)。

关于java - 和引擎更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337802/

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