我需要对片段进行排队并在给定的时间(每秒一次)执行它们。这些片段实际上是玩家的动作,例如 jump()、attack()、walk('left') 等。
当用户按下一个键时,我需要将他的操作排队并每秒执行一次所有操作。
现在我的方法,因为没有更好的主意,就是将每个片段添加到一个数组中,然后用 eval() 循环遍历它。这是我的代码:
var queue = [];
// On player or AI action
queue.push('attack()'); // Could be walk('left'), jump() etc.
// On new frame
for(var i=0;i<queue.length;i++){
eval(queue[i]);
}
queue = [];
我确定我的方法很糟糕,但我想澄清我想要做什么,我想这样的问题并不少见。任何信息/想法?