先简答一下,提出一种解决方案
1. 根据游戏视角远近、操控粒度的不同,这种问题可以有不同的解决方案
2. 针对带有动作要素的近视角游戏,这种问题有这几种解决步骤:约定、实测、演示
3. 约定是指,规定好动作的打击点/打击类型,两方的动作均按此约定制作。参考大部分2d格斗游戏,其受击动作已预先分为上部受击、下部受击、空中受击等。
4. 实测是指,在进行判定的过程中,往往是由物理模型而非动画模型进行计算的。为了简化计算,可能会使用碰撞箱(2d游戏则是碰撞区)来进行拟似的碰撞检测,因为复杂多面体的碰撞检测计算量较大。
5. 演示是指,进行完碰撞检测之后,判定受击类型之后播放对应的动画即可。
推箱子的问题,你做成一个动画也可以,做成两个也可以。一般是分开做的。
接触点的问题,同样涉及到视角远近和操作粒度的问题。例如原始版推箱子,一格一格推,那么只需判定格子是否相邻即可。近视角推箱子,用碰撞箱拟似,规定好碰撞距离(多远开始做出推箱子的动作)即可演示出动作,无需测量实际动画模型距离。
手感恰恰是操作->反馈的及时程度决定的。也就是说,同时受影响于程序和动画。或许受动画(动作设计、延时)影响更大一些。