【Godot4自学手册】第三十四节来回无限滚动的伤害铁刺球

本节主要学习给地宫添加来回滚动的铁刺球,铁刺球共有两个方向,一个是左右方向;另一个是上下方向。如果主人公不小心碰到球,就会收到伤害。这是地宫的第一个机关。

一、新建场景并布局节点

把我们准备好的铁球图片素材拖入到文件系统的Sprites->Objects目录下。
然后新建Node2D场景,命名为RollingBar,存到Scenes目录下。将素材拖入到场景中。
请添加图片描述

二、让铁球无限滚动

选择根目录,添加脚本命名RollingBar.gd保存到Scripts目录下,编写如下脚本:

extends Node2D
@onready var moving_spikes = $MovingSpikes  #获取铁刺结点
@export var move_length:=Vector2(100.0,0.0)  #定义铁刺移动距离,并可以在外部调整
@export var move_time:float=0.8  #定义铁刺单次滚动时间,并可以在外部调整func _ready():move()  #调用移动函数func move():var tween = get_tree().create_tween()  #创建tween移动类tween.set_ease(Tween.EASE_IN_OUT)#EASE_IN = 0  插值开始缓慢,并加速接近结束。#EASE_OUT = 1  插值开始快速,接近结束时减慢。#EaseType EASE_IN_OUT = 2  EASE_IN 和 EASE_OUT 的组合。两端的插值最慢。#EaseType EASE_OUT_IN = 3  EASE_IN 和 EASE_OUT 的组合。两端的插值最快。tween.tween_property(moving_spikes,"position",moving_spikes.position+move_length,move_time)#设置铁刺move_time时间内完成move_length的距离move_length *=-1  #改变move_length的方向tween.tween_callback(move) #铁刺移动到指定位置,转变方向继续移动,函数的递归,函数自己调用自己,只是参数不同

三、给铁球添加伤害

为根节点添加Area2D节点,命名为HitSpikes,为该节点添加CollisionShape2D子节点,然后在其检查器中Shape属性选择新建CircleShape2D,然后调整合适大小。
请添加图片描述

然后将HitSpikes的Collision下Layer设置为Object,Mask设置为Player,表示铁刺球和主人公发生碰撞。
请添加图片描述

然后选择切换到信号节点,找到body_entered(body:Node2D),双击弹出对话框选择RollingBar。
请添加图片描述

然后在代码页面输入如下代码:

func _on_hit_spikes_body_entered(body):if body.name=="Player":body.state=3

这样就完成了主人公的受伤功能了。

四、主场景横竖两个方向调用铁球

切换到underground场景,将上述建立的RollingBar场景2次实例化到该场景,移动到合适位置。如下图:
请添加图片描述

位置1的参数设置如下:
请添加图片描述

位置2的参数设置如下:
请添加图片描述

这样就实现了一个左右移动和上下移动的铁刺:
请添加图片描述

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

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

相关文章

基于单片机的测时仪系统设计

**单片机设计介绍,基于单片机的测时仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的测时仪系统设计是一个结合了单片机技术与测时技术的综合性项目。该设计的目标是创建一款精度高、稳定性强且…

空调系统风道计算方法介绍

一.风道水力计算方法 风道的水力计算是在系统和设备布置、风管材料、各送、回风点的位置和风量均已确定的基础上进行的。 风道水力计算方法比较多,如假定流速法、压损平均法、静压复得法等。对于低速送风系统大多采用假定流速法和压损平均法,而高速送风系统则采用静压复得法…

【数据结构】复杂度(长期维护)

本篇博客主要是浅谈数据结构概念及时间复杂度,并做长期的维护更新,有需要借鉴即可。 复杂度目录 一、初识数据结构1.基础概念2.如何学好数据结构 二、复杂度1.复杂度2.时间复杂度①有限数的时间复杂度②函数的时间复杂度③二分查找时间复杂度④递归拓展练…

汇编语言作业(二)

目录 一、实验目的 二、实验内容 三、实验步骤以及结果 四、实验结果与分析 五、实验总结 一、实验目的 1、巩固debug命令 2、使用 debug 来进行寄存器、内存中内容的查看和修改 3、使用 debug 来进行程序的调试 二、实验内容 上图是一段指令代码 ,机器码和汇编…

Java中常用的加密算法及其实现原理详解(二)

本系列文章简介: 随着互联网的快速发展,信息的安全保护愈发重要。在软件开发中,加密算法被广泛应用于数据的加密和解密过程中,以保护敏感信息的机密性和完整性。Java作为一种广泛应用于企业级开发的编程语言,也提供了丰…

ubuntu更换国内镜像源,下载增速

方法一:通过脚本更换源 1.备份原来的源 sudo cp /etc/apt/sources.list /etc/apt/sources_init.list 将原来的源保留一下,以后想用还可以继续用 2.更换源 sudo gedit /etc/apt/sources.list 使用gedit打开文档,将下面的阿里源复制进去&am…

Java零基础入门-java8新特性(完结篇)

一、概述 ​上几期,我们是完整的学完了java异常类的学习及实战演示、以及学习了线程进程等基础概念,而这一期,我们要来玩点好的东西,那就是java8,我们都知道java8是自2004年发布java5之后最重要且一次重大的版本更新&a…

走进车厂 | 移远通信以前沿车载技术,照亮智能网联汽车产业创新发展之路

无钥匙自动解锁方便快捷、实时路况导航精准高效、语音指令轻松控制车辆、车载娱乐系统丰富多样……随着智能化、数字化浪潮的不断推进,现如今的汽车出行焕然一新。 正如我们所见,汽车产业正在经历前所未有的变革。物联网、车联网等前沿技术的发展和应用&…

idea Springboot校园新闻系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 校园新闻发布系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库&a…

ubuntu无法粘贴复制windows中的内容,分辨率无法自适应电脑自带系统

1、直接在命令行执行以下命令 sudo apt-get autoremove open-vm-tools //卸载已有的工具 sudo apt-get install open-vm-tools //安装工具open-vm-tools sudo apt-get install open-vm-tools-desktop //安装open-vm-tools-desktop 2、重启Ubuntu系统即可 3.如果上述…

mbti,ESTP型人格的心理问题分析

什么是ESTP型人格 ESTP分别代表外向,实感,理智,依赖,而ESTP型人格则是一种性格上十分激进,喜欢冒险,并且总是因为情绪起伏过大,而一下子做出应激行为的相对冒险的人格。具有ESTP型人格的人一般…

蓝桥杯 --- 日期问题模板

目录 1.如何判断闰年 2.如何遍历当前年份的每一天 3.如果想要输出某一年某一天到某一年某一天之间一共有多少天。 4.精确到具体周几到周几的问题分析 5.如何直接通过一层for循环枚举年月日 习题: 蓝桥杯竞赛特别喜欢考日期问题,今天给大家分享一下…

EfficientVMamba实战:使用 EfficientVMamba实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

HarmonyOS(鸿蒙)——单击事件

2.4 实现ClickedListener接口并重写onClick方法 2.5 实现onClick方法中的具体逻辑,以此完成点击事件的相关业务操作 三、测试 3.1 登录远程模拟器 3.2 运行项目 四、精选好文 一、简介 1.1 什么是组件 组件就是文本、按钮、图片等元素的统称 1.2 什么是事件 …

grep无法使用完整的正则表达式

问题描述 grep无法使用完整的正则表达式,比如前置断言、后置断言、\d和\t、\n等 问题原因 使用了扩展正则,而不是perl正则。规则和perl正则不同 从文档上讲得很清楚: -E PATTERN is an extended regular expression 他是扩展表达式&#…

C++ 不同进制数的表示和转换

在 C++ 中,可以使用不同的方式来表示和转换不同进制数,包括二进制、八进制、十进制和十六进制。 1. 不同进制数的表示 #include <iostream>int main() {int binary = 0b1010; // 二进制,以 0b 或者 0B 开头int octal = 012; // 八进制,以 0 开头int decimal =…

AI编程005/ 逆向生成mysql的建表语句

1/ 通过insert into 语句生成建表语句 有些时候我们能获取到表的insert语句&#xff0c;但是没有表结构。我们可以借助AI工具&#xff0c;让其逆向生成mysql的建表语句。 提示词如下&#xff1a; 根据下面的SQL语句&#xff0c;逆向生存mysql的建表语句&#xff0c;每个字段…

Elasticsearch 8.x ELK 搭建并配置 SSL

说明&#xff1a;这只是本人在家里组网搭建的集群&#xff0c;所以内容排版可能比较随意了&#xff0c;没有耐心的同学直接跳过去看别的文章吧&#xff0c;我只是放在这里留作记录方便以后翻阅 ELK 的坑实在太多了&#xff0c;自己在物理机(多台)逐渐摸索的&#xff0c;安装最新…

洞察规则与人情:游走于无形的智者

在这个纷繁复杂的世界里&#xff0c;规则和人情构成了我们日常生活的框架和纽带。然而&#xff0c;有些人似乎拥有一种特殊的能力&#xff0c;他们能够洞察这些规则和人情的本质&#xff0c;甚至能够在一定程度上操纵和改变它们。这些人&#xff0c;我们可以称他们为游走于无形…

一文掌握线程池实现原理

线程池简介 Java在使用线程执行程序时&#xff0c;需要调用操作系统内核的API创建一个内核线程&#xff0c;操作系统要为线程分配一系列的资源&#xff1b;当该Java线程被终止时&#xff0c;对应的内核线程也会被回收。因此&#xff0c;频繁的创建和销毁线程需要消耗大量资源。…