在制作动作游戏的时候,遇到了一些问题,这里做个记录:
主体架构:
1. 将 主角的 动画播放表现 与 主角移动 分离。
2. 将动画播放以及对应触发的事件封装成一个个状态机。
3. 根据 输入,来判定各个动画状态间的切换。
4. 根据 输入,来移动主角。
遇到问题:
在上面的动画状态机中,因为每一个状态都是相斥的,假设有两种状态同时出现,就比较难受了:
假设主角可以在攻击的同时移动 (比如拿着枪一边射击一边跑)。
解决思路:
1. 创建一个新的状态机,这个状态机叫做 边跑边射击,然后就可以满足上诉需求了。
但是问题在于,如果出现多种组合,那么就会多出太多的状态机,不是特别满意。
2. 将移动(走路、跑、跳)与技能释放单独分开处理,同时动画层级也做区分,这样它们就互不影响了,这种方案比上一种要好。
但是要注意其实二者是有关联的,比如一些技能在释放的过程中是没法移动的,这些情况也需要处理。