Godot4.3类星露谷游戏开发之【可收集物品】

千里之行,始于足下

零、 笔记

在开发类星露谷风格游戏时,为了让各类物品(比如果实、资源等)都能被玩家收集,开发中运用了 组件化思想 —— 这种思想的核心是将 “可被收集” 这一重复出现的功能,从具体物品中剥离出来,做成一个独立、通用的模块。基于此思路,本文创建了 【可收集组件】 。它内部封装了完整的 “收集逻辑”,将它作为子节点添加到物品场景中后,可使物品立刻拥有 被玩家收集 的能力。

观察碰撞

一、创建物品

第一步,创建新场景,以 Sprite2D 作为场景根节点(用于展示物品图片);

创建Sprite2D
第二步,选中 Sprite2D 节点,在检查器下的 Texture 加载 Egg_item.png 文件;
文件路径: res://资产/Sprout Lands - Sprites - Basic pack/Objects

加载Egg_item.png
第三步,在文件系统 res://场景/ 路径下创建 物品 文件夹;

创建物品文件夹
第四步,更改 Sprite2D 节点名为 ,并保存该场景在新创建的 res://场景/物品 路径下 ;

蛋
完成物品创建!

二、创建可收集组件

第一步,在文件系统 res://场景/ 路径下创建 组件 文件夹;

创建组件文件夹
第二步,创建新场景,并以 Area2D 为根节点;

Area2D
第三步,为 Area2D 附加脚本 可收集组件.gd ,并保存在 res://场景/组件 路径下

可收集组件.gd
第四步,理清 可收集组件.gd 检测玩家进入后收集物品的逻辑;
逻辑如下:

玩家节点 Area2D检测区域 Area2D的父节点:物品Sprite2D SceneTree 进入检测区域 触发body_entered信号 调用get_parent().queue_free() 安全移除物品Sprite2D节点 玩家节点 Area2D检测区域 Area2D的父节点:物品Sprite2D SceneTree

第五步,选中 可收集组件 节点,找到检查器下的节点 信号 ,右键点击 连接

连接可收集组件1
然后我们发现 可收集组件.gd 连接后变成了这样:

连接可收集组件2
注意左边的绿色箭头,代表连接成功;

  • 这个函数的意思是:如果检测到物理体 Phisics Body,就会执行这个函数里面的操作
  • 我们的玩家是正是用 Charecterbody2D 节点做的,这个节点就属于物理体 Phisics Body
  • 利用这一点可以实现检测到玩家进入后,将物品收集的目的!

编写代码如下:

extends Area2D

#一旦东西进入则使得物品消失
func _on_body_entered(body: Node2D) -> void:
	#获取父节点(物品)并删除
	#使得物品消失看起来像是收集了
	get_parent().queue_free()

三、物品 + 可收集组件

可收集的物品 = 物品 + 可收集组件;
第一步,将 可收集组件 作为 物品 的子节点;

可收集组件
第二步,根据警告,我们添加 CollisionShape2D 作为可收集组件的 收集范围

添加CollisionShape2D
并在检查器中选择收集范围的 形状 ,这里我们用圆形;

选择收集范围的形状
可自行调节圆形的大小。

第三步,将 添加到 测试_基本地形 场景中;

添加到测试_基本地形
第四步,运行当前场景前,我们打开调试,勾选 显示碰撞区域

显示碰撞区域
第五步,观察碰撞是否有效;

观察碰撞
碰撞有效,完成!

四、免费开源资产包

某开源网站精灵图资源包链接: 点击此处

  1. 进入链接后点击下图按钮
    下载

  2. 然后点击【No thanks,just take me to the downloads】(不了谢谢,只想下载)
    No thanks,just take me to the downloads

  3. 最后点击下图按钮完成下载(注意导入前需解压缩)
    下载

03-08
### MathPix工具介绍 Mathpix Snipping Tool 是一款强大的数学公式识别工具,从最初的原型发展至今已经历了多次迭代和功能增强[^1]。该工具不仅能处理简单的数学表达式,还可以应对复杂的数学模型以及多行公式,并且支持手写公式的识别。 这款应用程序通过不断的科技创新与用户反馈改进,在学术研究和技术领域赢得了良好声誉,成为许多科研人员不可或缺的工作伙伴之一。除了基本的功能外,Mathpix 还提供了多种高级特性来满足不同用户的特定需求。 ### 使用方法 #### 安装与启动 为了使用 Mathpix Snipping Tool ,首先需要下载安装程序并按照提示完成设置过程。一旦成功安装后即可随时调用此应用来进行截图操作。 #### 截取屏幕上的公式图像 当遇到想要转换成 LaTeX 或 AsciiMath 的图片时,只需打开软件界面按下快捷键(默认为 `Ctrl+Alt+M`),此时鼠标指针会变为十字形状以便于选取目标区域;框选所需部分之后松开按键即刻上传至云端服务器等待进一步分析处理。 #### 获取LaTeX代码片段 经过短暂几秒钟的时间延迟过后,所截获的内容将以纯文本形式显示出来供复制粘贴到其他编辑器当中继续编写文档或是分享给他人查看交流之用。 ```python import pyperclip # 假设已获取到LaTeX字符串 stored_in_variable named latex_code pyperclip.copy(latex_code) print("LaTeX code has been copied to clipboard.") ``` 对于希望深入探索更多可能性的用户来说,可以考虑查阅官方提供的扩展插件——如用于解析Markdown文件内的公式标记语法的库 **mathpix-markdown-it** [^2] ——这将进一步提升工作效率和个人体验感。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ForBigData

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值