与游戏 ticks 相关的 Computercraft 评估和执行。

为了编写快速的海龟程序,我想知道与 ticks 相关的代码执行方式是什么?执行函数或评估其他 Lua 语句除了海龟移动所需的时间外,是否还有一个 tick 惩罚?换句话说,假设 if 语句评估为 false,下面三个示例需要相同的时间吗?

turtle.forward()
if turtle.getFuelLevel() == 0 then turtle.refuel() end
turtle.forward()
turtle.forward()
if x < 20 then turtle.refuel() end
turtle.forward()
x = x+1
turtle.forward()
turtle.forward()

谢谢

编辑:

根据 Eric 的说法,任何与 Minecraft 交互的操作都可能需要一个 tick,但是纯 Lua 操作不需要。换句话说,第一个示例需要额外的 2 个 ticks(除了多个 tick 的移动),第二个需要额外的 1 个 tick,而最后一个没有额外的 ticks。

点赞
用户4119537
用户4119537

通常,只有在触发某种事件(如 os.pullEvent、os.pullEventRaw、coroutine.yield)或需要通过 turtle 移动时,才会引起一个 tick 的停止或暂停脚本的运行。当然,turtle 运动需要进行一个 tick,并调用 coroutine.yield 来暂停脚本并移动。

对于计算机编程的技术细节,最好向了解该模组的人进行提问。不经常访问 Stack Overflow 的人可能没有那样的知识。如果你想了解更多信息,建议在计算机工艺论坛上提问。

2015-06-16 13:43:06