前言:
- 我是根据b站上的视频进行学习,并且总结写下笔记,然后做此分享。笔记非常详细以至于你可以通过查看文章进行快速学习并且制作出游戏出来。当然视频学习的链接我也放在下面了:
- 视频学习:www.bilibili.com/video/BV1Nd…
- 音频/美术资源包下载: pan.baidu.com/s/1mY05SbG3…
完成目标:
让玩家在不同状态下播放对应动画(Idle / Run)。
一、在基础角色类中准备动画接口
- 打开
base_character.gd - 创建一个新的函数(例如:
PlayAnimation(state, direction)) - 用 Ctrl 拖拽获取动画节点(如 AnimatedSprite2D)
- 写好“状态 + 方向”拼接逻辑
注意:
这里只是提供播放动画的方法, 不在基类里决定什么时候播放。
二、在各状态中播放动画
在 Idle 状态脚本中
-
在
Enter()或Update()里调用:- 播放 Idle + 当前方向 的动画
在 Run 状态脚本中
-
在
UpdatePhysics()或Enter()里调用:- 播放 Run + 当前方向 的动画
核心思想
- 基类:负责“怎么播放动画”
- 状态:负责“什么时候播放什么动画”
最终效果
- 进入 Idle → 播放待机动画
- 进入 Run → 播放奔跑动画
- 动画会根据方向变化
角色正式实现: 移动 + 状态切换 + 对应动画播放。
实现过程:
- 在上一个章节中,我们的玩家角色可以移动了然后会切换状态了,但是动画还没播放,这节我们就来解决这个问题。 我们打开基础角色脚本,然后进行创建一个新的函数
- 然后我们将状态机节点使用ctrl+拖动到基础角色脚本中
- 然后编写动画播放,状态+方向。但是我们不会在这个基础角色类脚本中进行播放,而是在各自的状态脚本中进行完成这个播放动画的操作
- 所以在空闲状态脚本中
- 在奔跑状态脚本中