Godot4.3类星露谷游戏开发之【简易库存】(UI部分)

Godot GUI探讨 Godot GUI 阅读详情

千里之行,始于足下

零、 笔记

制作简易库存,用于存放被收集的物品。本章制作库存UI部分,包含库存面板、物品槽、物品纹理、物品数量;

请添加图片描述

一、库存面板

第一步,在 res://场景/UI 路径 下,以 库存UI(NinePatchRect) 为根节点创建 库存UI.tscn 场景;

在这里插入图片描述
第二步,选中 库存UI 节点,在检查器中新建 AtlasTexture,并 从路径 res://资产/Sprout Lands - UI Pack - Basic pack/Sprite sheets/ 导入 Sprite sheet for Basic Pack.png (资源见文末) ;

在这里插入图片描述
点击编辑区域,选中如图部分作为 库存面板 ;

在这里插入图片描述
在这里插入图片描述
第三步,在检查器中更改 Patch Margin 参数如图;

在这里插入图片描述

得到一个库存面板;

在这里插入图片描述

二、物品槽

第一步,在库存UI节点下添加 节点树 如下;

在这里插入图片描述

  • MarginContainer
    • HBoxContainer
      • 物品槽(PanelContainer)

第二步,选中 物品槽(PanelContainer) 节点,在检查器中快速加载 游戏UI主题.tres (见Godot4.3类星露谷游戏开发之【时钟UI】);

在这里插入图片描述

第三步,在弹出的 主题 底栏中,自定义 InventorySlotUI 类型;

在这里插入图片描述
在这里插入图片描述
第四步,在设置 基础类型 为 PanelContainer ;

在这里插入图片描述
第五步,基础类型选定后,在主题属性 panel 下新建 StyleBoxTexture ;

在这里插入图片描述
在这里插入图片描述
第六步,在检查器中新建 AtlasTexture ,导入路径 res://资产/Sprout Lands - UI Pack - Basic pack/Sprite sheets/ 下的图片 Sprite sheet for Basic Pack.png ,并编辑图片如下;

在这里插入图片描述
第七步,选中 物品槽 节点,将 Theme/Type Variation属性 编辑为 InventorySlotUI ,并勾选 Container Sizing/扩展;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第八步,复制多个 物品槽,并自行在检查器中调整 库存UI(NinePatchRect) 与 MarginContainer 的属性,以达成想要的效果(略);

在这里插入图片描述

三、物品纹理+物品数量

第一步,选中 物品槽 添加 节点树 如图;

在这里插入图片描述

  • 物品纹理(TextureRect)
    • 物品数量 (Label)

第二步,任选图片、数字, 对纹理和标签的大小位置进行测试;

在这里插入图片描述
发现几个问题:

  1. 图片盖住了物品槽
  2. 标签在左上角,且字号偏大

第三步,针对 图片盖住了物品槽 的问题,选中 物品槽 节点,在 主题 底栏中点击 StyleBoxTexture ;

在这里插入图片描述
然后在检查器中找到 Sub-Region ,并 编辑区域 ;

在这里插入图片描述
变更四条斑马线如下图,其组成的 四边形,就是子节点 物品纹理 与 孙节点 物品数量 渲染的地方。

在这里插入图片描述
第四步,针对 标签字号偏大 的问题,选中 物品数量 节点,在检查器中的 Theme 属性下快速加载 游戏UI主题.tres ,然后自定类型 SlotNumber 如下图;

在这里插入图片描述
设置基础类型为 Label ,并调整合适的字号;

在这里插入图片描述
在这里插入图片描述
最后,选中 物品数量 节点,将 Theme/Type Variation属性 编辑为 SlotNumber ;

第五步,针对 标签位置在左上 的问题,选中 物品数量 节点,在 2D界面 中,用鼠标调整节点至合适即可;

在这里插入图片描述
第六步,清空 物品纹理、物品数量 节点,并复制至各个 物品槽 节点下;

在这里插入图片描述
第七步,将 库存UI.tscn 场景作为实例化为 游戏UI.tscn 场景的节点;

在这里插入图片描述
调整布局至合适位置;

在这里插入图片描述

四、搭建测试环境

将路径 res://scenes/测试/ 下的 测试_昼夜循环.tscn 复制为 测试_简易库存.tscn ,并变更根节点名称为 测试_简易库存 ,删除 昼夜循环组件 节点,如图所示;

在这里插入图片描述

五、测试

运行 测试_简易库存 场景;

在这里插入图片描述
测试完成!

六、免费开源资产包

精灵包链接:点击此处
UI包链接:点击此处

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

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

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

Godot 常用UI+布局容器简单介绍 布局容器是非常重要的,我们一般在布局容器进行对用户的交互UI布局是非常通用的,无论是2D还是3D。但是Godot 的3D还处于开发中的状态,2D已经够用了,但是3D 目前还是不如Unity的。 阅读详情

相关推荐

使用Godot 4从零复刻《星露谷物语》核心玩法:实战开发指南

在游戏开发领域,2D像素风模拟经营游戏因其独特的艺术风格和深度的玩法循环而备受青睐。这类游戏的核心通常围绕资源管理、地图交互和成长系统构建,其实现依赖于高效的2D渲染、精确的碰撞检测以及复杂的状态与数据管理。Godot引擎,特别是其4.x版本,凭借其卓越的2D工作流、节点化场景系统和易上手的GDScript脚本语言,成为实现这类游戏逻辑的理想选择。通过将游戏世界分解为可交互的瓦片地图(TileMap),并利用其数据层(Data Layers)管理地形属性,开发者可以高效地实现耕种、采矿等核心交互。同时,结合

weixin_34345753的博客 354

【Godot】使用 NinePatchRect 节点拉伸时图片之间出现空隙

Godot 3.2.4 如下图所示,设置完 axis stretch 属性为 tile fit 后,可以看到图片之间有存在空隙 这是因为在导入时勾选了导入中的 Mipmaps 属性,把它取消勾选再重新导入即可,如下: 重新导入后的效果,可以看到空隙不见了: ...

qq_37280924的博客 1107

Godot 4 开发《星露谷物语》风格农场游戏:从零实现核心系统

2D像素风游戏开发是独立游戏和初学者入门的常见选择,其核心在于高效管理游戏对象、状态与资源。Godot引擎以其轻量、开源和节点化架构,为这类游戏的快速原型开发提供了强大支持。通过其内置的TileMap系统、GDScript脚本语言和信号机制,开发者可以高效构建可交互的世界、管理游戏状态并实现数据驱动的设计。这在模拟经营、角色扮演等需要复杂系统交互的游戏类型中尤为关键,能显著提升开发效率与项目可维护性。本教程聚焦于利用Godot 4的新特性,如改进的TileMap工作流和GDScript 2.0,从零搭建一个

weixin_30645617的博客 399

godot引擎学习5

Godot游戏引擎是Juan Linietsky和Ariel Manzur发起的,是一款制作游戏的软件,可以制作2D和3D游戏。通过基于节点的架构来设计游戏,3D渲染器设计可以增强3D游戏的画面。具有内置工具的2D游戏功能以像素坐标工作,可以掌控2D游戏效果。

wenxinfly的专栏 1437

用Godot 4复刻《星露谷物语》核心玩法:从零搭建2D农场模拟游戏原型

游戏引擎是游戏开发的基础工具,它通过提供渲染、物理、脚本等核心模块,将创意转化为可交互的数字体验。在众多引擎中,Godot以其开源、轻量和节点化架构脱颖而出,特别适合2D游戏的快速原型开发。其独特的场景(Scene)与节点(Node)系统,让开发者能够像搭积木一样组合游戏对象,显著提升了开发效率。对于模拟经营、农场养成这类注重系统复杂度和内容深度的游戏类型,Godot 4强大的2D渲染管线、直观的TileMap编辑器以及高效的GDScript语言,能够帮助开发者快速验证核心循环,如资源采集、时间管理和背包系

weixin_34151004的博客 320

Godot 4 实战:从零构建像素风农场模拟游戏核心系统

2D游戏开发中,TileMap系统是构建网格化世界的核心技术,它通过图块(Tile)与自定义数据层(Custom Data Layers)高效管理地形与交互逻辑。其原理是将游戏世界划分为网格,每个图块携带属性数据(如是否可通行、可耕种),从而实现数据驱动的游戏逻辑。这一技术价值在于极大提升了地图编辑效率与游戏逻辑的灵活性,尤其适用于农场模拟、策略、RPG等需要复杂地图交互的场景。结合Godot 4的信号(Signal)与单例(Singleton)机制,可以优雅地实现全局游戏时间系统与模块化交互。本文以复刻《

weixin_30808693的博客 436

Godot4.3类星露谷游戏开发之【简易库存】(逻辑部分)

本文为Godot4.3类星露谷游戏开发的进阶内容,聚焦简易库存系统的完整逻辑实现。在UI基础上,通过可收集组件、库存管理器(单例)和库存UI的脚本联动,打通物品收集到数据同步、UI更新的全流程。文中附详细代码(可收集组件、库存管理器等脚本)、测试步骤及开源资产包链接,助开发者快速掌握物品收集与库存管理的核心逻辑。

ForBigData的博客 1114

Godot动态库存系统:模块化架构与游戏物品管理实践

在游戏开发中,库存系统是管理游戏物品、装备和资源的底层数据架构与交互逻辑的核心模块。其设计原理通常遵循数据与表现分离、事件驱动通信等软件工程范式,以实现松耦合和高可维护性。这类系统的技术价值在于为角色扮演、生存冒险等游戏类型提供了可扩展的物品管理基础,能显著提升开发效率并降低后期维护成本。应用场景广泛,从背包、装备栏到合成、任务系统均依赖于此。本文以Godot引擎的开源动态库存系统为例,深入解析其如何通过模块化设计,将物品数据、库存槽位与UI组件解耦,并利用Godot的Resource和Signal系统,高

weixin_42676876的博客 340

Godot 4 开发像素风农场模拟游戏:从网格地图到农业循环的实战指南

在游戏开发领域,2D网格地图与状态管理是构建模拟经营、RPG等类型游戏的核心基础技术。其原理在于将游戏世界划分为离散的网格单元,每个单元承载特定的属性与状态数据,通过坐标转换与数据查询实现玩家与环境的精确交互。这项技术的价值在于能够高效组织复杂的游戏逻辑,如耕种、建造、资源管理等系统,是实现《星露谷物语》这类游戏深度玩法循环的基石。在应用场景上,它广泛适用于农场模拟、策略建造、地牢探索等需要基于格子进行逻辑运算的游戏类型。本文以 Godot 4 引擎为例,深入探讨如何利用其 TileMap 节点与自定义数据

weixin_33829657的博客 290

Godot动态物品栏系统:数据驱动与信号解耦的背包解决方案

在游戏开发中,物品栏系统是管理游戏状态和玩家交互的核心模块,其设计直接影响游戏的体验与可维护性。其核心原理在于实现数据层与表现层的分离,通过资源(Resource)管理物品属性,通过节点(Node)构建UI组件,两者通过观察者模式保持同步。这种架构的技术价值在于提供了高度的模块化和可扩展性,使开发者能专注于游戏逻辑而非底层实现。应用场景广泛,从RPG的网格背包到生存游戏的合成台,都需要处理物品的增删、堆叠、拖拽和跨容器交互。本文探讨的Godot动态物品栏系统,正是基于信号(Signal)机制实现松耦合通信,

weixin_42566072的博客 414

【unity实战】手戳一个类似星露谷物语的建筑系统(附工程源码)

欢迎来到【unity实战】系列!本篇文章将带你一起探索一个令人兴奋的主题——建筑系统。如果你曾经沉浸在《星露谷物语》这样的游戏中,梦想着自己能够创建属于自己的农场、村庄或城市,那么你来对地方了!在本文中,我们将使用Unity引擎来实现一个类似于《星露谷物语》的建筑系统。通过简单的点击与拖拽操作,你将能够在虚拟世界中建造各种各样的建筑物,如房屋、农作物、商店等。这个建筑系统不仅会给你带来乐趣和创造力的发挥空间,还将涉及到一些基本的碰撞检测、资源管理和可交互性的实现。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1686

【Godot4.2】CanvasItem绘图函数全解析 - 4.绘制样式盒

欢迎来到系列的第4节,本节我们来讲CanvasItem绘图函数中的样式盒绘制函数。:空样式盒:平面样式盒,不使用纹理,而是通过定义边框和背景色来实现。:线样式盒,可以绘制水平或垂直的分割线:纹理样式盒,类似于,可以基于九宫格形式,拼凑出自适应的纹理背景样式。而CanvasItem提供了用来绘制样式盒,上面4种都可以用这个函数来绘制。可以看到,与绘制简单的几何图形相比,样式盒可以做出更好的设计,可以很简单的实现圆角矩形以及描边和阴影等效果。我也会在下一节讲完字符和字符串绘制后,在综合案例。

巽的博客 958

星露谷物语游戏素材

星露谷物语全游戏素材,地图,NPC,物品等所有游戏内图片

Godot中所有UI节点介绍

UI节点是游戏界面中常用的节点,但是很多UI节点可能用的次数很少,所以我写一下,做个基础介绍而已,主要是为了提醒自己UI界面具有多种制作方法。理论上只使用ui界面也可以制作一个完整的文字冒险游戏面板,节点 输入元素,滚动条,滑块,菜单栏,标签栏。

watch361的博客 3272

Godot引擎开发:UI设计与用户交互-(10).国际化与本地化.docxGodot引擎开发:UI设计与用户交互-(11).UI性能优化.docxGodot引擎开发:UI设计与用户交互-(12)

Godot引擎开发:UI设计与用户交互_(10).国际化与本地化.docx Godot引擎开发:UI设计与用户交互_(11).UI性能优化.docx Godot引擎开发:UI设计与用户交互_(12).自定义UI控件.docx Godot引擎开发:UI设计与用户交互_(13).Godot场景与UI节点管理.docx Godot引擎开发:UI设计与用户交互_(14).用户界面交互模式设计.docx Godot引擎开发:UI设计与用户交互_(15).触摸与手势识别.docx Godot引擎开发:UI设计与用户交互_(16).多平台UI适配.docx Godot引擎开发:UI设计与用户交互_(17).UI设计最佳实践.docx Godot引擎开发:UI设计与用户交互_(18).案例分析与实战项目.docx Godot引擎开发:UI设计与用户交互_(1).Godot引擎基础与环境搭建.docx Godot引擎开发:UI设计与用户交互_(2).UI设计基础与控件介绍.docx Godot引擎开发:UI设计与用户交互_(3).GDScript编程基础与事件处理.docx Godot引擎开发:UI设计

Docker容器n8n中 read/write files from disk 无法读取容器内文件解决方案

《n8n文件读写Docker部署常见问题解决方案》摘要:针对n8n 1.90.2版本在Docker环境下文件读写失败问题,本文分析常见错误包括路径错误(ENOENT)、权限不足(EACCES)及节点误用问题。核心解决方案为:1)通过-v参数挂载宿主机目录到容器(如/files);2)使用新版Read/WriteFilesfromDisk节点操作文件;3)确保权限设置正确。提供可直接导入的示例工作流JSON,演示从CSV读取到结构化数据处理的全流程。特别强调已部署用户需重新挂载卷的正确操作方式,并附解决方案对

m0_74822402的博客 2184

TextureProgress类

TextureProgress Inherits:Range<Control<CanvasItem<Node<Object Texture-based progress bar. Useful for loading screens and life or stamina bars. 基于纹理的进度条。 对于加载屏幕和生命或耐力条很有用。 Description TextureProgress works likeProgressBar, but use...

游戏开发 388

【亲测】ubuntu20.4 安装CUDA11.8

一步一步搭建C++ CUDA CUDNN TENSORRT OPENCV DNN ONNXRUNTIME推理环境

weixin_40950590的博客 3896

Unity入门实战(Sprout Lands (类星露谷物语) )- 1

五一假期玩了一段时间星露谷物语,突发奇想想做一个类似星露谷物语的休闲游戏(主要是摆了好长时间了hhh)。为此,作者找了很多素材,奈何都不尽人意。然后就在B站上看到看到一个名为《Sprout Lands》的类星露谷物语游戏的素材符合作者的心里预期,于是乎就去itch.io(PS:本来想用米家游戏的素材的,但没有找到,并且作者对于像素画一点经验都没有,大哭)这一章只是对项目的地图贴图部分以及人物简单移动操作做了规划和设计,交货什么的等下面几章再做,估了好久了,希望能在暑假把这个项目做完把。

qq_46658145的博客 3261

UNITY3D万人同屏,Dots万人同屏解决方案_类萌宠宠之战

UNITY3D弹幕游戏开发,万人同屏解决方案

6473

基于大模型最大化电力交易收益(策略与代码实践)

新一代电力交易系统正借助大型语言模型(LLM)实现智能化转型。面对可再生能源占比提升带来的市场波动性加剧,传统交易策略已难以应对。LLM通过多模态能力,能够实时处理海量异构数据,包括政策公告、设备检修信息、天气报告等非结构化数据,构建更精准的电力市场预测模型。智能交易系统主要包含三大核心模块:市场情报感知与理解器、融合LLM的短期电价预测模型和自适应交易策略生成器。这些模块协同工作,可在几分钟内完成事件分析、价格预测和策略生成,显著提升交易效率。系统还能实现跨市场套利和动态风险管理,但需注意数据质量、模型验

专注AI大模型,软件混淆,授权 1258

9patch / NinePatch 详解及使用

一、NinePatch介绍NinePatch 是可伸缩的位图图像,可以用作视图的背景。其实质上就是在原图片(.png)上添加了1px的边框,允许按照我们的需求,把对应的区域设置为黑色线,它在使用的过程中就可以根据我们的实际需求自动调整图形大小以适应视图内容。NinePatch图像保存的后缀名为.9.png 对9patch图的制作规则如下:1、上面黑线或者点表示纵向可拉伸的区域一般一个点即可2、左边...

Markus 1万+

2.3 MMU Notifier(上):KVM 催生的页表变化通知

探讨了MMU Notifier机制的作用及其在虚拟化等场景中的应用。当CPU页表发生变更(如munmap、页面迁移等操作)时,需要通知拥有"第二套页表"的子系统(如KVM的EPT/NPT、IOMMU、GPU等)失效其映射。MMU Notifier通过订阅-通知机制实现这一功能,核心数据结构包括mmu_notifier订阅对象和回调接口mmu_notifier_ops。当CPU页表修改时,通过mmu_notifier_range描述变更范围,调用订阅者的回调函数进行同步,确保外部MMU与CPU页表一致性。

图形/计算GPU的驱动与虚拟化技术分享园地 1037
上一篇: Godot4.3类星露谷游戏开发之【生长的小麦】
下一篇: Godot4.3类星露谷游戏开发之【简易库存】(逻辑部分)
ForBigData
博客等级 码龄7年 221粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

ForBigData

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

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

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

打赏作者

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

抵扣说明:

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

余额充值