1 播放逻辑调整
编辑器上取消勾选active,脚本里加上
1 | func _ready() -> void: |
这样只有在游戏开始时才播放,不会一直播放
2 添加攻击动画
1 添加4方向攻击动画和动画树BlendSpace2D

2 给攻击加上混合位置
1 | animation_tree.set("parameters/Attack/blend_position",input_vector) |
3 使用状态机控制玩家动作
加入枚举
1 | enum { |
动作状态交给状态机控制
1 | func _physics_process(delta: float) -> void: |
4 加入攻击动作
1 项目设置里添加输入映射

2 调用攻击
1 | #调用攻击的逻辑 |
5 逻辑完善
但这样会一直处于攻击状态,在动画调用完后,将状态切换回MOVE

给所有攻击动画都设置上,但还有个问题,攻击时继承了运动时的初速度,消除它
1 | func attack_state(delta): |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 芃狐!





