使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击(一)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件(二)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-飞船动画(三)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-滚动背景(四)
开发思路
整体开发还是基于组件的思维。相比于工厂模式或者状态机,可能有些老套,但是更容易理解和编程
教程大概是2个小时 基本上一个小时就能有游戏的雏形。
不过由于都是初学者,所以大概整体是应该4个小时左右。
本篇文章实现敌人,约10分钟
敌人节点场景
这个敌人虽然使用的组件,但是仍然有一定继承的思想
首先新建一个敌人场景,节点是node2d,在enemies文件夹下
添加敌人所需要的节点,如图所示,都是之前飞船用过的,然后enemy新建脚本准备调用这些组件
一共7个
(1)动画精灵效果节点 AnimatedSprite2D
(2)移动组件MoveComponent
(3)缩放组件ScaleComponent
(4)状态组件StatsComponent
(5)闪烁组件FlashComponent
(6)振动组件ShakeComponent
(7)屏幕可视化编辑器VisibleOnScreenNotifier2D
这些组件是所有敌人的通用模块,使用组合的方式的好处在于能够复用大量逻辑代码不用在意其中细节,并且能够灵活的选择哪些逻辑作用于敌人,实现更好的灵活性和复用性(当然,实际上继承和状态机也可以实现,不过可能更加复杂)
组件添加后,需要添加脚本到enemy,按住ctrl拖动组件到脚本,代码如下所示
可以明确组件的类型方便出错(我没添加)
ready代码只有一行,主要实现的当敌人离开屏幕时自行销毁。这行语句就是通过connet连接屏幕可视化组件到销毁信号
queue_free为常用销毁函数,建议记住
基础敌人有了后,所有敌人都要继承于这个敌人,新建一个继承场景
设置场景保存为green_enemy 这样就能继承敌人的模板,能够看到黄色的组件,不能进行修改,继承场景不能修改父场景节点
如果要修改敌人节点,就必须修改父节点
绿色敌人制作
在继承的绿色敌人里面,选择AnimatedSprite2D节点,找到素材中绿色敌人,按照之前已经有过的教程添加动画,具体参数如下图所示
可以运行查看动画,然后需要调节可视框大小
movecomponent 检查器中acter选择green enemy
scalecomponent falshcomponent shakecomponent 这三个检查器acter需要选择animated2d
将movecompoent 中速度velocity设置为40
然后在world中添加敌人,如果敌人能够往下移动,并且播放动画,那么敌人配置
成功
目前敌人没法受到攻击和碰撞。下一章进行详细讲解
最后在,statscomponent组件中,将health设置为3 绿色敌人攻击三次会死亡
修改生命值不会影响被继承组件,enemy中生命仍然默认为1,这样方便我们为每种敌人单独设定数值
下一章对敌人受击控制进行讲解,主要讲解敌人的交互