godot2D游戏教程系列二(19)

前言:


完成目标:

让玩家在不同状态下播放对应动画(Idle / Run)。


一、在基础角色类中准备动画接口

  • 打开 base_character.gd
  • 创建一个新的函数(例如:PlayAnimation(state, direction)
  • 用 Ctrl 拖拽获取动画节点(如 AnimatedSprite2D)
  • 写好"状态 + 方向"拼接逻辑

注意:

这里只是提供播放动画的方法, 不在基类里决定什么时候播放。


二、在各状态中播放动画

在 Idle 状态脚本中

  • Enter()Update() 里调用:
  • 播放 Idle + 当前方向 的动画

在 Run 状态脚本中

  • UpdatePhysics()Enter() 里调用:
  • 播放 Run + 当前方向 的动画

核心思想

  • 基类:负责"怎么播放动画"
  • 状态:负责"什么时候播放什么动画"

最终效果

  • 进入 Idle → 播放待机动画
  • 进入 Run → 播放奔跑动画
  • 动画会根据方向变化

角色正式实现: 移动 + 状态切换 + 对应动画播放

实现过程:

  • 在上一个章节中,我们的玩家角色可以移动了然后会切换状态了,但是动画还没播放,这节我们就来解决这个问题。 我们打开基础角色脚本,然后进行创建一个新的函数
  • 然后我们将状态机节点使用ctrl+拖动到基础角色脚本中
  • 然后编写动画播放,状态+方向。但是我们不会在这个基础角色类脚本中进行播放,而是在各自的状态脚本中进行完成这个播放动画的操作
  • 所以在空闲状态脚本中
  • 在奔跑状态脚本中
相关推荐
夜猫逐梦32 分钟前
【逆向经验】一篇文章讲透为什么CE搜不到Python游戏的内存值
开发语言·python·游戏
萑澈1 小时前
智能增强与范式演进:OpenClaw 与 Hermes Agent 自我学习机制深度研究报告
学习
小熊Coding1 小时前
童年游戏冒险岛(Python版本)
python·游戏·pygame
白夜11172 小时前
C++(标签派发 Tag Dispatching)
开发语言·c++·笔记·算法
xuhaoyu_cpp_java2 小时前
Spring学习(一)
java·经验分享·笔记·学习·spring
ZC跨境爬虫2 小时前
跟着 MDN 学 HTML day_15:(媒体缓冲、拖动与时间范围控制)
前端·笔记·ui·html·edge浏览器·媒体
minglie13 小时前
剩余定理的电枢语言描述
学习
我是发哥哈4 小时前
深度评测:五款主流AI培训平台的课程交付能力对比
大数据·人工智能·学习·机器学习·ai·chatgpt
摇滚侠4 小时前
DSL 学习 ElasticSearch 主要就是学习 DSL 查询语言
学习·elasticsearch·jenkins
AI周红伟5 小时前
三年狂赚1.75亿!卖课,才是中国AI最容易赚钱的生意
人工智能·深度学习·学习·机器学习·copilot·openclaw