我有一个关于客户端预测和服务器协调的问题。 这个家伙的第一个解释很好地解释了这一点: Client-side prediction & server reconciliation
我在游戏中为简单的动作做了很好的实现:
第1帧:
第50帧:
现在,我对需要冷却时间的输入有疑问。我希望玩家不能移动'使用' 技能'时持续1秒。
让我们举个例子:保持'移动'在3秒内,然后应用技能'。对帐在500毫秒后结束
我试过了:
1)使用全局var' usingSkill = true'和' lastSkill =新日期()'在步骤1(!usingSkill是移动的条件)。这无法进行对帐,因为它需要重新应用'移动'输入。
2)使用' usingSkill = true'和' lastSkill =新日期()'作为步骤1中更新状态的成员。'移动'已完成对帐,但重新应用了冷却时间 - > 1.5秒的冷却时间 - > ' lastSkill =新日期()'无法重新申请
解决方案?
谢谢!
答案 0 :(得分:0)
变量timeUntilAllowingMovement
(或沿着这些线的东西),每一帧,消除从它传递的毫秒,当它是<= 0
时,你可以允许移动,当它是{{1}时},不允许移动。