为了避免多段命中,我将攻击判定仅持续了 0.01 秒,
虽然攻击本身命中并造成了伤害,
但敌人并未进入“被攻击命中”的状态转换。看来需要 0.02 秒,
然而,如果判定持续 0.02 秒,就会导致连续两次命中。
考虑到双人游戏(2P)的情况,我不希望给敌人设置过多的无敌时间,
(因为当 1P 的攻击命中期间,2P 的攻击会直接穿过敌人)。
我也曾考虑过在命中后立即取消攻击判定的方法,但未能成功。
请问有什么好的解决方案吗?
为了避免多段命中,我将攻击判定仅持续了 0.01 秒,
虽然攻击本身命中并造成了伤害,
但敌人并未进入“被攻击命中”的状态转换。看来需要 0.02 秒,
然而,如果判定持续 0.02 秒,就会导致连续两次命中。
考虑到双人游戏(2P)的情况,我不希望给敌人设置过多的无敌时间,
(因为当 1P 的攻击命中期间,2P 的攻击会直接穿过敌人)。
我也曾考虑过在命中后立即取消攻击判定的方法,但未能成功。
请问有什么好的解决方案吗?
关于这一点,视觉脚本中各状态的判定是每帧进行的。
1 帧约为 0.0167 秒,因此 0.01 秒的时间无法赶上视觉脚本的处理时机。
这并非 Actzuku 特有的问题,而是程序中常见的 process(delta) 每帧处理时机,因此难以改变。
目前尚未确定开发计划,但我们在前作 Actzuku MV 中实现的“按属性设置无敌时间”系统已作为需求提出。如果能够实现该系统,应该就能达成您所期望的效果……
现阶段可行的方案包括:
以上仅供参考。
感谢您的回答。
暂时先判定为2F,
并考虑将原始威力减半的方针。
不确定在这种情况下是否可以使用相同的方法,但我也曾遇到过类似的问题。由于我是通过“自行实现伤害处理”的方式来解决的,姑且在此分享。
在我的情况下,我完全抛弃了 Actzuku 原有的伤害处理机制(无敌时间设为 0,受到的伤害设为 0),转而通过伤害动作的转换条件来进行处理。
我准备了两个变量,分别通过计时器来设定无敌时间。例如,可以准备名为“对 1P 无敌时间”和“对 2P 无敌时间”的变量。当受到各自玩家的攻击时,设置相应的无敌时间计时器;当对应的计时器归零时,若再次受到攻击,则转换到伤害状态……大概可以这样实现……?
由于 Actzuku 的伤害处理机制不够灵活,我预感可能需要进行各种变通和技巧。
感谢您提供可能有帮助的信息。
攻击方面虽然有些困难,但我会继续通过各种调整来推进。