前言:

  • 我是根据b站上的视频进行学习,并且总结写下笔记,然后做此分享。笔记非常详细以至于你可以通过查看文章进行快速学习并且制作出游戏出来。当然视频学习的链接我也放在下面了:
  • 视频学习:https://www.bilibili.com/video/BV1Nd25BNEA6?spm_id_from=333.788.player.switch&vd_source=078d5d025b9cb472d70d8fda1a7dc5a6&p=15
  • 音频/美术资源包下载: https://pan.baidu.com/s/1mY05SbG3XFUpn-qiKxDRhw?pwd=b6bg

完成目标:

成功创建敌人场景,并完成基础动画设置。


一、快速创建敌人场景

  • 复制 player.tscn
  • 重命名为 enemy.tscn
  • 根节点重命名为 Enemy
  • 移除原来的玩家脚本绑定

目的:

复用结构,减少重复搭建。


二、重置动画系统

  • 重置 AnimatedSprite2D 的精灵帧资源
  • 创建新的 SpriteFramesa
  • 删除 2D 相机节点(敌人不需要跟随视角)
  • 移除 Idle / Run 状态脚本
  • 将 Run 状态节点重命名为 Move

目的:

让敌人拥有独立的动画和行为。


三、添加敌人动画

按照和玩家一致的命名规则:

Idle_Up
Idle_Down
Idle_Left
Idle_Right
Move_Up
Move_Down
Move_Left
Move_Right

设置:

  • 使用网格添加动画帧
  • 帧率:12 FPS
  • 勾选循环播放

四、调整悬浮效果

  • 修改 Sprite 的 offset
  • 设置 Y = -40

效果:

敌人看起来悬浮在空中。


最终效果

  • 拥有独立 Enemy 场景
  • 动画结构清晰
  • 无相机依赖
  • 悬浮视觉完成

敌人基础外观与动画系统搭建完成,为后续AI逻辑做准备。

实现过程:

  • 我们来创建敌人的场景,然后玩家场景其实和敌人场景有很多的共同之处,所以我们可以直接服用玩家场景来创建敌人场景是一个很不错的选择。让我们在场景文件夹中,找到player.tscn的文件进行复制一份,然后重命名为enemy.tscn
  • 然后把根节点进行重命名为enemy

  • 然后我们把原来的玩家脚本去掉绑定,点击右边检查器的最下面的一个重置的图标,去掉附加的脚本

  • 然后接着我们接着来搞定动画精灵节点,我们重置精灵帧对象重置默认动画属性

  • 然后我们创建新的精灵帧并且点击一下

  • 然后2d相机节点我们不需要直接删掉(相机作用是观察,有了相机所以是以玩家角色为中心的地图移动)

  • 接着我们移除待机状态和移动状态的脚本,另外把这个移动状态重命名为Move

  • 然后接着我们来添加动画,我们按照想玩家角色动画的一样命名方式,待机状态+方向去命名,点击网格然后添加对应的动画帧,并且帧率设置为12帧循环

  • 然后我们希望这个敌人是在空中悬浮的,所以我们需要这个精灵往上偏移一点,所以打开右侧检查器设置offset进行设置,将y轴的偏移设置为-40

  • 接下来我们把剩下的三个方向的待机状态动画都进行添加进去,以及移动的动画添加进去,待机动画和移动动画都是一样的,帧率也是一样的12帧

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐