客户端+服务器都是用Javascript编写的。我没有主游戏循环,因为战斗很少发生,游戏中没有其他需要循环的东西。当两名玩家开始战斗时,他们会进入如下自动攻击循环:
if ( combat key is pressed ) {
check a bunch of stuff;
setTimeout( combatLoop(); 5000 );
}
combatLoop = function() {
attack(player1,player2);
var loop = setTimeout( combatLoop(); 5000 );
if ( skill variable == 1 ) { clearTimeout(loop); skill(); }
}
因此,combatLoop 函数每 5 秒被一次又一次地调用。攻击函数处理两个输入玩家互相攻击时发生的情况。如果玩家使用技能,则使用 clearTimeout 退出循环,并调用相关的 Skill() 函数。技能函数可能会或可能不会再次调用战斗循环。
问题 1
我对 Javascript 很陌生,我想知道你们是否发现这样做有什么重大缺陷?
问题2
我还没有看到任何类似的例子来说明我正在尝试做的事情,所以我将技能按钮部分拼凑在一起。以这种方式使战斗循环“听”技能按钮按下(技能按钮按下=>设置技能变量= 1)并使用clearTimeout清除主循环是否“错误”?因此,技能会在下一次攻击期间执行(而不是在攻击之间),这对我来说很好。不知道工业标准是什么。:p