word可以做网站链接吗,衡阳衡阳县网站建设,北京简网生活圈科技有限公司,图片识别 在线识图文章目录 开发思路敌人生成器代码分析属性配置 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击#xff08;一#xff09; 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件#xff08;二#xff09; 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-飞… 文章目录 开发思路敌人生成器代码分析属性配置 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击一 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件二 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-飞船动画三 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-滚动背景四 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-敌人配置五 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-碰撞框和受伤区域六 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-受伤 爆炸 销毁组件七
开发思路
整体开发还是基于组件的思维。相比于工厂模式或者状态机可能有些老套但是更容易理解和编程
教程大概是2个小时 基本上一个小时就能有游戏的雏形。
不过由于都是初学者所以大概整体是应该4个小时左右。
本篇文章实现敌人在场景中的随机生成约10分钟
敌人生成器
删除world中已经有的敌人节点后续敌人都要依赖节点生成器生成了 新建一个node2d场景EnemyGenerator保存 添加两个组件 一个SpawnerComponent生成器组件生成敌人 一个计时器组件定时生成敌人定时器名称更改为GreenEnemySpawnTimer EnemyGenerator新建脚本 ctrl拖动组件生成组件初始化代码 补全声明新建函数handle_spawn如下所示设定生成器场景同时设定生成器坐标这个目标是让敌人从屏幕上方两侧随机生成 代码如下
添加代码如下所示
代码分析
spawner_component.scene enemy_scene //敌人生成场景的设置这行语句是屏幕宽度的设置可以直接从border_bounce_component组件中复制如下图所示
ProjectSettings.get_setting(display/window/size/viewport_width)export var GreenEnemyScene : PackedScenevar margin 8GreenEnemyScene 是载入的敌人场景
margin是代表边距后续需要一个边距为8的向量
spawner_component.spawn(Vector2(randf_range(margin,screen_width-margin),-16))这行语句就是真正的生成了生成是一个矢量坐标矢量坐标是 xy 这样的类型 x轴坐标由随机函数randf_range生成具体位置就是在边距为8的X轴位置生成。两边都是8 所以一边为8一边是屏幕最大值-8 y轴坐标是-16保证敌人在最上方屏幕外面生成生成时不让玩家看见
属性配置
除此之外还需要设置敌人生成器场景为绿色敌人。防止没有目标生成 GreenEnemySpawnTimer定时器检查器属性需要设置 1waittime等待时间设置为2s 2 oneshot 设置 启用做单次触发为了控制下一次触发事件 3Autostart 设置 启用做自动触发
后续会将分数和敌人生成频率相关。如果分数增加那么敌人生成速度会增加。方便提升难度 目前游戏运行已经可以执行基本的游玩了
下一章制作标题菜单和游戏结束界面