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

2024-04-04 22:12

本文主要是介绍【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的参数设置如下:
请添加图片描述

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

这篇关于【Godot4自学手册】第三十四节来回无限滚动的伤害铁刺球的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876936

相关文章

linux dlopen手册翻译

名称 dlclose, dlopen, dlmopen 打开和关闭一个共享对象 简介 #include <dlfcn.h>void *dlopen(const char*filename, int flags);int dlclose(void *handle);#define _GNU_SOURCE#include <dlfcn.h>void *dlmoopen(Lmid_t lm

颠覆你的开发模式:敏捷思维带来的无限可能

敏捷软件开发作为现代软件工程的重要方法论,强调快速响应变化和持续交付价值。通过灵活的开发模式和高效的团队协作,敏捷方法在应对动态变化和不确定性方面表现出色。本文将结合学习和分析,探讨系统变化对敏捷开发的影响、业务与技术的对齐以及敏捷方法如何在产品开发过程中处理持续变化和迭代。 系统变化对敏捷软件开发的影响 在敏捷软件开发中,系统变化的管理至关重要。系统变化可以是需求的改变、技术的升级、

UniApp实现漂亮的音乐歌词滚动播放效果

在现代的音乐播放应用中,歌词的展示和滚动播放已经成为了一个非常常见的功能。今天,我们将通过UniApp来实现一个漂亮的歌词滚动播放功能。我们将使用UniApp提供的组件和API来完成这个任务。 页面结构 在页面的模板部分,我们需要创建一个音频播放器和歌词展示区域。使用<scroll-view>组件来实现歌词的滚动效果。 <template><view class="audio-co

使用亚马逊Bedrock的Stable Diffusion XL模型实现文本到图像生成:探索AI的无限创意

引言 什么是Amazon Bedrock? Amazon Bedrock是亚马逊云服务(AWS)推出的一项旗舰服务,旨在推动生成式人工智能(AI)在各行业的广泛应用。它的核心功能是提供由顶尖AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI以及亚马逊自身)开发的多种基础模型(Foundation Models,简称FMs)。

hdu2073(无限的路)

无限的路 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5148    Accepted Submission(s): 2653 Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,

Git命令文本手册

git init # 初始化本地git仓库(创建新仓库)git config --global user.name "xxx" # 配置用户名git config --global user.email "xxx@xxx.com"

collectionView 无限轮播图

拿一组4张的轮播图作为例子 思路主要是 1. 拿到一组图片后, 把绿色图1和绿色图4多复制出来一份, 把红色图1(复制的图1)放在最后, 红色图4(复制的绿色图4)放在首位, 现在一共是6张图. 2. 左滑从绿色图1到红色图1时,就迅速把collectionView的contentoffset 设置到图1的位置. 3.右滑时,到红色图4就把collectionView的frame设置到绿色图

【Unity-Lua】音乐播放器循环滚动播放音乐名

前言:Unity中UI节点 图1 如上所示,一开始本来是打算用ScrollView做的,觉得直接计算对应的文本位置就行,所以没用ScrollRect来做,可以忽略Scroll,Viewport这些名字。如下图:需要在一个背景Image组件上添加上Mask组件来显示固定位置的文本显示。 图2 图3 并且需要在要显示的文本上挂载Content Size Filter组件,但是这儿会有个坑

SMIDI-SAP接口配置手册

目录 一、 SAPERP相关接口配置(必要条件) 1. SAP ERP 配置 1.1 配置

五一假期出行必备的高科技手册

今天小编看了眼朋友圈,发现无节操的同学真是太多了,你们出去玩就好了,为啥要发图呢……各种晒,简直要虐死上班狗啊。 不过掐指一算,小编期盼已久的五一马上就要来了。抱着拯救同样期待假期出行同胞们的想法,小编给大家准备了一份出行旅游必备的高科技手册,助大家防火防水防(yi)搭(yue)讪( pao),下面将会开启高(zhuang)冷(BI)模式,如有雷同,纯属故意。 攻略篇 攻略在手,说走就走。