Java中可挂起的脚本?

时间:2016-03-06 17:33:03

标签: java scripting game-engine

所以基本上我理想地喜欢一种只需逐步执行指令的解释语言,并且可以通过该语言的方法调用暂停执行。

例如,

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,它完成了我想要的东西,但我想要一些更轻松的东西,而不必做字节码检测。

1 个答案:

答案 0 :(得分:0)

我认为你的引擎的解释语言可能对这个问题的答案太大了,你可以在每次游戏更新时添加一个变量,当该变量超过某个阈值时,执行代码

int timer = 0;

public void update() {
    if(timer > 60) {
        doThing();
        timer = 0
    } else {
        timer--;
    }
}

如果您的游戏每秒更新60次,那么这将每秒运行一次doThing()