所以基本上我理想地喜欢一种只需逐步执行指令的解释语言,并且可以通过该语言的方法调用暂停执行。
例如,
walkTo(x,y)将等待操作完成,如果它在自己的线程上,因为步行花费的时间超过了我的一个游戏操作的周期时间。
因此,我希望walkTo方法能够启动它所需要的东西,然后每次完成循环所需的操作时都可以逐步执行调用suspend。
function walkTo(x, y) {
while (curX != x && curY != y) {
step(whateverDirection);
suspend();
}
}
或能够暂停x次循环,如暂停(10)
但是我已经看了几个关于完成这个的资源,并且很难理解项目的每一件小事。我想知道是否有人制作游戏对此有任何想法。
在调用execute / run / whatever的同一线程上执行指令,并暂停停止读取和返回指令。存储状态,等待下一次执行调用。
我尝试了https://github.com/offbynull/coroutines,它完成了我想要的东西,但我想要一些更轻松的东西,而不必做字节码检测。
答案 0 :(得分:0)
我认为你的引擎的解释语言可能对这个问题的答案太大了,你可以在每次游戏更新时添加一个变量,当该变量超过某个阈值时,执行代码
int timer = 0;
public void update() {
if(timer > 60) {
doThing();
timer = 0
} else {
timer--;
}
}
如果您的游戏每秒更新60次,那么这将每秒运行一次doThing()