godot2D游戏教程系列二(20)

前言:

完成目标:

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


一、快速创建敌人场景

  • 复制 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帧
相关推荐
魔术师Dix9 小时前
StartGame:Unity TDD 外部工程指南
学习·游戏·unity·c#·测试驱动开发
砚凝霜9 小时前
软考网络工程师|第 4 章 WLAN MAC 机制、Ad Hoc、无线安全、WPAN 蓝牙 ZigBee 完整备考笔记
网络·笔记·安全
小弥儿9 小时前
GitHub今日热榜 | 2026-07-31:AI Agent工作流共享赛道升温
人工智能·学习·github
江屿风9 小时前
【C++笔记】【二叉搜索树】流食般投喂
开发语言·数据结构·c++·笔记
xqqxqxxq11 小时前
AI智能旅游规划系统 - 前端技术笔记
前端·笔记·旅游
小蒋学算法18 小时前
算法-M个非重叠子数组最大和II-WQS二分学习
数据结构·学习·算法
摇滚侠18 小时前
《RocketMQ 官网》阅读笔记 RocketMQ 普通消息 延时消息 顺序消息 事务消息
笔记·rocketmq
重庆小透明20 小时前
带你从不同视角了解三大MQ
java·学习·spring·kafka·rabbitmq·rocketmq
Privasa-隐私实验室21 小时前
全程无死角安全测评|从开机上锁、硬核加密到彻底销毁,Privasa 全生命周期隐私防护详解
笔记·安全·本地存储·隐私安全·aes-256