使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件(二)

文章目录

  • 开发思路
  • 发射点添加
  • 子弹组件构建
  • 子弹处理
  • 缩放效果
  • 闪光效果

使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击(一)

开发思路

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

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

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

本篇文章实现约10分钟

主要实现激光子弹的动画效果

发射点添加

添加两个marker LeftMuzzle RightMuzzle
在这里插入图片描述
这两个作为激光枪的发射枪口 位置放在对应的像素点上
在这里插入图片描述
然后新建一个脚本,链接到ship上,后续添加具体代码

子弹组件构建

新建一个场景,名字叫做Laser,主要用于制作飞机发射的激光子弹
添加一个spite作为子弹, 然后在Asset文件夹中找到子弹的图片放在spite的texture中,直接拖进去就可以、
然后再添加一个movecompoinent作为移动元素

在这里插入图片描述
添加movecompoinent主要作用是复用移动脚本,避免代码重复
检查器中选择acter为为laser,然后y轴速度设置为-200
子弹就做好了

在这里插入图片描述
接下来需要让子弹从飞机发射点发射,作者写了现成的组件,叫做spawner_component(旋转发射器)
在commpoents中选择spawner_component添加在ship下面,场景选择laser
在这里插入图片描述
现在只是添加了组件,需要代码实现具体子弹在两个发射点的生成。
切换到ship脚本,按住ctrl 拖动LeftMuzzle RightMuzzle spawnercomponent到脚本中
这样能够更便捷的生成代码,进行三个部件的变量初始化
在这里插入图片描述
拖动后发现没有类型提示,需要手动开启godot类型提示
点击菜单-编辑器-编辑器设置-补全-添加类型提示,打勾
在这里插入图片描述
这样,重新拖动就自动添加类型提示了

在这里插入图片描述
但是godot自动添加的类型提示有时也不准确,部分需要自己修改
然后添加代码如下,主要用于控制左右发射点代码用组件生成
在这里插入图片描述

然后在ship中新建定时器,改名为FireRateTImer 作为发射间隔
检查器设置timer参数,等待时间0.4s 然后自动重置
请添加图片描述

然后就是同样添加代码,ctrl添加定时器到代码初始化变量,然后ready中添加定时器和子弹生成的连接
在这里插入图片描述
到这一步请运行游戏,如果能够看到子弹从飞船发射点发送,那么子弹发射组件就构建成功了

子弹处理

首先运行游戏,在子弹发射过程中,能够看到子弹发送。但是能够看到子弹节点不断生成不消失,因此首先需要控制超过屏幕的子弹自动消失,否则程序迟早溢出崩溃
在这里插入图片描述

在子弹激光场景下面添加脚本,
添加visibleonscreeennotifier2d 节点
然后ctrl同样方式拖动节点到脚本中初始化

在这里插入图片描述
程序如下,超出范围后消失

在这里插入图片描述
然后调整子弹具体可视范围
在这里插入图片描述
在这里插入图片描述
再次运行,能够看到子弹新建序号增加,旧的不断消失,那么就正确了

在这里插入图片描述

缩放效果

增加缩放的效果,让子弹发射更有质感
增加作者写好的缩放组件scalecomponent 然后同样ctrl拖动初始化变量,设定检查器中缩放对象是ship,然后增加缩放代码,就能够看到飞船发射子弹时的缩放

在这里插入图片描述

同样的,子弹也可以设置对应的缩放效果,一样添加组件和代码,不同的就是缩放的尺寸和时间有所改变,缩放的对象变成spite的纹理
在这里插入图片描述

闪光效果

类似方法实现子弹的闪光
增加作者写好的缩放组件flashcomponent 需要确保素材路径是否对应你的文件路径
然后对象仍然选择spite节点,时间选择0.1s
在这里插入图片描述
与缩放相似,代码如下增加,调用flash组件。
在这里插入图片描述
请添加图片描述
结束!,这一部分基本完成!一个基本的飞机发射子弹已经完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32/GD32驱动步进电机芯片TM2160

文章目录 官方概要简单介绍整体架构流程 官方概要 TMC2160是一款带SPI接口的大功率步进电机驱动IC。它具有业界最先进的步进电机驱动器,具有简单的步进/方向接口。采用外部晶体管,可实现高动态、高转矩驱动。基于TRINAMICs先进的spreadCycle和stealthCh…

STM32 低功耗模式 睡眠、停止和待机 详解

目录 1.睡眠模式(Sleep Mode) 2.停止模式(stop mode) 3.待机模式(Standby Mode) STM32提供了三种低功耗模式,分别是睡眠模式(Sleep Mode)、停止模式(Stop …

MYSQL八股文汇总

目录 1、三大范式 2、DML 语句和 DDL 语句区别 3、主键和外键的区别 4、drop、delete、truncate 区别 5、基础架构 6、MyISAM 和 InnoDB 有什么区别? 7、推荐自增id作为主键问题 8、为什么 MySQL 的自增主键不连续 9、redo log 是做什么的? 10、redo log…

App H5+ 实现下载、查看功能 前后端实现(SpringBoot)

<!doctype html><html><head><meta charset"utf-8"><title>维修指南</title><meta name"viewport" content"widthdevice-width, initial-scale1.0, minimum-scale0, maximum-scale0.85, user-scalableyes&quo…

下半年交火点:智驾全国都能开,智舱多模态大模型

“你猜一猜我现在参加什么样的活动呢&#xff1f;” “你参加的是WAIC&#xff0c;就是那个人工智能的大Party&#xff0c;超多科技高手都在这……” “你帮我介绍一下这本书吧。” “这书叫《反脆弱&#xff0c;从不确定性中获益》&#xff0c;讲的是怎么在混乱里找机会&am…

搞不清啊?伦敦金与上海金区别是?

进入黄金市场的朋友&#xff0c;有可能会被各式各样的黄金交易品种带得眼花缭乱&#xff0c;其实各品种虽然都以黄金作为投资标的物&#xff0c;但是也是各有不同的&#xff0c;下面我们就来比较一下相似的投资品种——伦敦金和上海金。 首先在比较之前&#xff0c;我们要搞清楚…

基于泰坦尼克号生还数据进行 Spark 分析

基于泰坦尼克号生还数据进行 Spark 分析 在这篇博客中&#xff0c;我们将展示如何使用 Apache Spark 分析著名的泰坦尼克号数据集。通过这篇教程&#xff0c;您将学习如何处理数据、分析乘客的生还情况&#xff0c;并生成有价值的统计信息。 数据解析 • PassengerId &#…

快速排序[原理,C++实现,注意事项,时间复杂度分析]

模板&#xff1a; //本模板来自ACwing void quick_sort(int q[],int l,int r) {if(l>r) return;int xq[lr>>1],il-1,jr1;while(i<j){do i;while(q[i]<x);do j--;while(q[j]>x); if(i<j) swap(q[i],q[j]);}quick_sort(q,l,j);quick_sort(q,j1,r); };原理&…

注册中心组成结构和基本原理解析

假如你正在设计和开发一个分布式服务系统&#xff0c;系统中存在一批能够独立运行的服务&#xff0c;而在部署上也采用了集群模式以防止出现单点故障。显然&#xff0c;对于一个完整的业务系统而言&#xff0c;这些服务之间需要相互调用并形成复杂的访问链路&#xff0c;一种可…

codesys多段直线电机跨电机控制

1. 电机描述 在X轴上有多段直线电机&#xff0c;如下图有9个&#xff0c;从X1到X9. 2.codesys程序结构 程序名称&#xff1a;Pou_two_motors 动作名称&#xff1a;ACT_move 把这个程序搞到任务配置里面 通过ethercat总线命名一下这些电机&#xff0c;方便调用。 3.程序内容 P…

油烟监测仪:守护厨房,让蓝天白云成为常态

夏日炎炎&#xff0c;白天的酷暑让人们更加向往夜晚的凉爽与惬意。在这样的季节里&#xff0c;品尝各式烧烤、小龙虾&#xff0c;再搭配一杯冰镇啤酒&#xff0c;成为了许多市民夜晚消遣的不二选择。然而&#xff0c;随之而来的餐饮油烟问题也进入了高发阶段&#xff0c;对周边…

智能锁赛博化,凯迪仕携全球顶尖科技亮相建博会!

7月8日&#xff0c;作为大家居建材行业全球规模第一大展&#xff0c;2024中国建博会&#xff08;广州&#xff09;在广交会展馆正式拉开序幕。据官方数据显示&#xff0c;本届展会展出规模展览总规模近40万平方米&#xff0c;建筑装饰领域各细分题材的一线品牌几乎全部参展。 其…

循环练习题

思路&#xff1a; 代码&#xff1a; public static void main(String[] args) {double sum0;for (int i1;i<100;i){if (i%2!0){sum1.0/i;}else {sum-1.0/i;}}System.out.println(sum);} 结果为&#xff1a;

vscode取消未使用变量的提示(爆红)

目前项目正在使用ts&#xff08;TypeScript&#xff09;&#xff0c;可以在 tsconfig.json 文件中调整编译选项 在你的项目中找到并打开 tsconfig.json 文件&#xff0c;将noUnusedLocals和noUnusedParameters设置为false&#xff0c;关闭vscode重新打开项目即可 {"comp…

Mysql 高性能索引

引言 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 常见的索引类型包括B-Tree索引、哈希索引、空间数据索引&#xff08;R-Tree&#xff09;、全文索引。 索引的类型 在MySQL中&#xff0c;索引是在 存储引擎层 而不是服…

井字游戏00

题目链接 井字游戏 题目描述 注意点 1 < board.length board[i].length < 100输入一定遵循井字棋规则 解答思路 如果某一方想要获胜&#xff0c;则其需要占满某一行或某一列或对角线&#xff0c;所以只需要根据第一行和第一列判断是否填充完某一行或某一列或对角线…

EHS管理体系,重塑造企业竞争力的关键密码

在当今这个快速发展的时代&#xff0c;企业面临着前所未有的挑战与机遇。随着全球环保意识的普遍觉醒&#xff0c;以及社会各界对企业社会责任的日益关注&#xff0c;EHS&#xff08;环境&#xff0c;健康&#xff0c;安全&#xff09;管理体系成为了企业稳健前行的重要基石。它…

设计模式之Facade设计模式

Facade设计模式&#xff0c;也称为外观模式&#xff0c;是一种结构型设计模式&#xff0c;它主要用于为子系统中的一组接口提供一个统一的高层接口&#xff0c;从而使得子系统更加容易使用。以下是关于Facade设计模式的详细介绍&#xff1a; 一、定义 Facade模式为多个复杂的…

一款强大且免费开源的多连接数据库管理工具

大家好&#xff0c;今天给大家分享一款免费开源的跨平台数据库管理工具DbGate。 DbGate是一款免费开源的跨平台数据库管理工具&#xff0c;支持多种数据库&#xff0c;包括MySQL、PostgreSQL、SQL Server、MongoDB、SQLite等。它可以在Windows、Linux、Mac操作系统上运行&#…

【概念介绍】Signed Distance Function(SDF)

三维空间的表示形式可以分为显式和隐式 显式&#xff1a; 体素Voxel&#xff0c;点云Point Cloud&#xff0c;三角面片Mesh隐式&#xff1a;符号距离函数Signed Distance Funciton(SDF)&#xff0c;占用场Occupancy Field&#xff0c;神经辐射场Neural Radiance Field&#xff…