使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-黄色敌人(十二)


使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击(一)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件(二)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-飞船动画(三)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-滚动背景(四)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-敌人配置(五)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-碰撞框和受伤区域(六)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-受伤 爆炸 销毁组件(七)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-敌人生成器(八)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-标题菜单及游戏结束界面(九)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-基础得分系统(十)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-最高分和数据记录(十一)

整体开发还是基于组件的思维。相比于工厂模式或者状态机,可能有些老套,但是更容易理解和编程

教程大概是2个小时 基本上一个小时就能有游戏的雏形。

不过由于都是初学者,所以大概整体是应该4个小时左右。

本篇文章实现另一个有轨迹移动的黄色敌人,约15分钟

黄色敌人添加

首先先找到enemy的基础场景,然后同样创建一个继承场景,改名字为YellowEnemy
在这里插入图片描述

黄色敌人前期创作可以参考前面第一个绿色敌人创作,仍然需要添加动画精灵,碰撞等

首先添加黄色敌人精灵动画
在这里插入图片描述
动画调节设置FPS和自动播放

在这里插入图片描述
设置可视节点适配动画大小
在这里插入图片描述

状态设置

设置StatsComponent中敌人生命值为6
在这里插入图片描述
设置MoveComponent中检查器Acter为主节点,然后y轴速度设置为10

在这里插入图片描述

ScoreComponent 分数组件设置调整分数为10,毕竟生命值都6了,击杀他应该获得更高分数
在这里插入图片描述
ScaleComponent 设置动画效果
同样的FlashComponent ,ShakeComponent也要设置动画效果,没有一一截图了
在这里插入图片描述

碰撞设置

两个的碰撞层需要设置,不过由于我们都是继承enemy节点,所以之前已经设置过不需要更改
HurtBoxComponent组件中添加CollisionShape2D碰撞形状,然后设置形状为整个动画
在这里插入图片描述
HitBoxComponent攻击节点也同样添加CollisionShape2D碰撞形状,当然设置攻击区域略小于受击区域,让敌人攻击区域小一点
在这里插入图片描述

黄色敌人生成

切换到EnemyGenerator,增加一个黄色敌人生成定时器,定时器需要启动OneShort和Autostart

在这里插入图片描述

代码需要新增三行,新增一个黄色敌人的载入场景,然后初始化黄色敌人定时器,然后参考绿色敌人的生成方式,复制代码。修改场景和定时器生成黄色敌人
yellow_enemy_spawn_timer.timeout.connect(handle_spawn.bind(YellowEnemyScene,yellow_enemy_spawn_timer))
在这里插入图片描述
保存脚本,加载黄色敌人场景到敌人生成器中
在这里插入图片描述

现在再运行,能够生成黄色敌人,攻击6次后消失,最基础的黄色敌人就构建完成了
在这里插入图片描述

敌人路径规划

首先需要构建一个继承脚本,但是由于yellowEnemy没有类名,所以先切换到yellowEnemy在脚本中声明类
在这里插入图片描述
然后右键扩展脚本
在这里插入图片描述
修改脚本代码extends "res://enemies/enemy.gd"为extends Enemy
这样好处是即使路径更改,仍然能够继承
在这里插入图片描述

这里代码需要调用父类的初始化方法
关键点在于Super()方法
如果父节点中定义了某个函数,那么子节点也继承这些函数将
而super则是意味着先执行父类中的这些函数逻辑。确保父类的逻辑不受影响,相当于先运行了父类函数

由于父类中已经实现了部分函数,因此只需要修改movecomponent组件中的X轴速度值就可以改变路径,当然,需要设置随机的矢量才能让敌人随机向左或者向右移动
在这里插入图片描述

不过单纯的修改x速度,那么敌人超出范围后就会消失,因此我们还需要添加borderBouncecomponent碰撞反弹组件,那么敌人就会到边缘反回运行,碰撞具体逻辑请详见组件

在这里插入图片描述
初次之外 需要在world中添加随机化函数randomize(),保证每次随机数都是随机的,这样每次重新开始游戏,敌人的生成都是随机的

在这里插入图片描述
运行游戏,这样两种敌人就都正常运行了
请添加图片描述
在这章之后,后续视频教程就需要看外网视频了,具体链接在我的第一章教程里面有,下一章为另一个粉色敌人的增加

资源下载

https://download.csdn.net/download/watch361/89543133

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超级馒头神

看看谁给我第一个打赏。太感谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值