godot2D游戏教程系列二(21)

前言:

完成目标:

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

完成目标:

成功让敌人拥有自己的逻辑脚本,并正确播放动画与层级排序。


一、让敌人继承基础角色类

  • 给 Enemy 根节点添加脚本
  • 继承 base_character
  • 保存到脚本文件夹

效果:

敌人复用角色基础功能(动画、移动、状态支持等)。


二、创建敌人专属状态

  • 给 Idle 状态添加脚本
  • 继承 State
  • 存放到"敌人状态"文件夹
  • 给 Move 状态添加脚本

目的:

敌人与玩家状态逻辑分开管理。


三、把敌人放进主场景

  • 将 enemy.tscn 拖入主游戏场景

四、实现敌人待机动画

  • 在敌人 Idle 状态脚本中
  • 在更新函数里调用播放待机动画
  • 逻辑可参考玩家 Idle 状态

效果:

敌人进入游戏自动播放待机动画。


五、修复层级显示问题

问题:

敌人始终显示在玩家前面。

原因: 敌人不在 ​​Level​​ 节点下,未参与 Y 轴排序。

解决:

  • 将 Enemy 拖入 Level 节点
  • 启用 Y 轴排序

效果:

玩家可以走到敌人前后,遮挡关系正确。


最终效果

  • 敌人继承基础角色系统
  • 有独立状态脚本
  • 能播放待机动画
  • 正确参与场景层级排序

敌人角色正式完成基础结构搭建。

实现过程:

  • 我们右键点击敌人场景的根节点点击添加新的脚本,继承选择基础角色类,然后保存到脚本文件夹中
  • 然后我们为空闲状态添加新的脚本,继承的是状态类,保存到一个新的敌人状态脚本文件夹
  • 为移动状态添加新的脚本
  • 接着我们把敌人场景拖动到主游戏场景中
  • 我们来给敌人写一下待机动画的播放,我们来到空闲状态的脚本,写一下更新函数,我们这里可以直接照搬玩家空闲状态脚本里面的代码,然后进行使用
  • 然后我们会发现,敌人总是在玩家的前面,这个是因为敌人场景没有被拖进那个关卡节点里面进行排序。我们拖动进去之后就可以玩家出现在敌人的前方或者绕道它背后
相关推荐
览讯冷却1 小时前
冷却塔噪声的健康危害与法规要求的技术梳理
经验分享·笔记·科技·其他·百度·制造·业界资讯
Dory_Youth1 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记
bessyon2 小时前
信息熵减与医疗交付:以3D检测与设备溯源为例
笔记
ZzT3 小时前
vibe coding 做小游戏·开工篇:5 天、8400 行代码一行没手写,先让 AI 能检查自己
ai编程·游戏开发·claude
Huanzhi_Lin3 小时前
资源回收源码阅读参考-上
游戏开发·gc·laya·layaair·资源回收·laya3.4
qq3621967053 小时前
OBB 数据包是什么?大型游戏 APK 装完闪退的元凶(2026)
游戏
comyccccc3 小时前
STM32F407VET6核心板的部分电路绘制学习笔记
笔记·stm32·学习
SmalBox3 小时前
06-04-源码-加密解密服务
unity3d·游戏开发
叼烟扛炮3 小时前
Linux 学习笔记(三十六):并发进阶——读写锁 vs 自旋锁,到底怎么选?
linux·运维·服务器·笔记·学习
是隼人4 小时前
buuctf-pwn [极客大挑战 2019]Not Bad(orw+jmp)题解(学习过程持续更新)
学习·安全·pwn入门·ctf入门