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


使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击(一)
使用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分钟

加油!还有4节就完成这个游戏了!最多还有1个小时!

粉色子弹制作

单独创作一个场景,做粉色的敌人子弹,添加2D动画节点。如图所示
在这里插入图片描述
还是素材中已经有子弹,找到即可,按照之前教程制作动画帧
在这里插入图片描述
动画需要开启自动循环,FPS设为5,可以测试一下

接下来需要添加hitbox区域 ,添加一个hitboxcomponent组件,检查器collsion属性layer取消1,mask设置为1

在这里插入图片描述
添加碰撞形状collsionShape2d,如图所示,区域略小于实际子弹,让玩家更容易躲避

在这里插入图片描述
添加移动组件,记得设置y轴速度为30,acter为子弹场景
在这里插入图片描述
添加可视性VisibleOnScreenNotifier2D,按照图像调整可视区域,再添加缩放scalecomponent,记得设置scalecomponent检查器属性的动画节点

scalecomponent
再添加一个node2d节点,更改名称为ancheor,调整组件节点位置,然后添加animationplayer节点控制动画
调整节点树主要是为了实现子弹发射时震荡的效果,这样就可以对这个锚点ancheor的统一操作
在这里插入图片描述
animationplayer新建一个动画,更改名称如图所示
在这里插入图片描述

设置anchor节点位置,postion设置为-4,点击右侧箭头直接添加关键帧到动画中,再postion设置为4.,在0.5秒再次添加关键帧
在这里插入图片描述
开启循环,播放动画,能够看到子弹不断左右循环运动。
在这里插入图片描述
为了使得动画更加顺换,将插值模式线性改为三次方,这会使得子弹更加顺滑的震荡
在这里插入图片描述
子弹基本就制作完成了

粉色子弹发射

回到粉色敌人场景,在状态states中添加新状态组件statecomponet 改名为FireState状态,添加生成器SpawnerComponent组件作为子节点,SpawnerComponent检查器场景属性设置为刚才创建的子弹场景
在这里插入图片描述
由于有两个SpawnerComponent,将我们新加入的节点更改名称为ProjectileSpawnerComponent,然后设置为唯一名称
在这里插入图片描述
ctrl拖入脚本,初始化火焰状态和生成器,确保四个状态是同一父节点
在这里插入图片描述
代码修改如下,主要逻辑就是在移动状态完成后,触发火焰状态,缩放子弹并且生成子弹在粉色敌人的全局位置上
然后需要将这个状态完成传输出去,并且这个状态完成后需要跳转到停止状态,构成状态循环
在这里插入图片描述

请稍微注意,之前FireState是state而不是stats组件

这里需要注意,生成器位置需要使用global_position位置,原因是状态机没有位置节点,只有node2d才有 子节点没有,子节点的子节点自然也没有

运行游戏后,如果粉色敌人横向运动后能够发射粉色子弹,说明状态机添加是成功的,代码修改无误

请添加图片描述

子弹没有左右震荡,那么切换回子弹场景,选中自动播放,子弹就会震荡了,同时记得将RESET中初始位置设置为0
在这里插入图片描述

新建粉色子弹脚本,代码如下,主要逻辑也很简单
1初始化可视化窗口,缩放组件,和攻击组件
2缩放组件播放动画,攻击组件如果触碰到飞机自动销毁,可视化窗口触发后也销毁
在这里插入图片描述
再次运行后,敌人和子弹触碰后都会销毁

最后设置敌人生成器EnemyGenerator,与之前绿色和黄色敌人相同,删除主世界中的测试粉色敌人,添加代码

在这里插入图片描述
ok粉色敌人和子弹都完整完成,现在三种敌人都被正确的添加到场景中,你可以调整三个的生成时间来控制难度,

请添加图片描述

下一章制作动态难度曲线

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超级馒头神

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

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

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

打赏作者

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

抵扣说明:

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

余额充值