Godot4.3类星露谷游戏开发之【自动门与显隐屋顶】

Godot4.3类星露谷游戏开发之【工具切换】 实现玩家角色工具切换,按下U、I、O后,分别执行砍树、浇水、锄地等动作,附完整项目代码+开源像素素材包。 阅读详情

千里之行,始于足下

零、前文回顾

在 Godot4.3类星露谷游戏开发之【创建家园】中房屋的基础上,创建自动开关门。思路:为门和房顶提供一个感觉区域( Area2D 节点),当玩家进入/离开这个区域时,该区域就发出信号,告知门->开/关,以及房顶->显示/隐藏。

一、创建门场景

第一步,我们新建场景与节点;

  • 门(StaticBody2D)
    • AnimatedSprite2D
    • CollisionShape2D

在这里插入图片描述
(Tips:StaticBody2D用于固定物体,CharacterBody2D用于可控制的移动物体。)

第二步,选中 AnimatedSprite2D 节点,在检查器中新建 SpriteFrame ;

在这里插入图片描述
第三步,在底栏打开SpriteFrame,更改 动画名 和 帧数 ,关闭 循环 并开启 自动播放;

在这里插入图片描述
第四步,新建动画 开门,关闭 循环 ;

在这里插入图片描述

第五步,从 res://资产/Sprout Lands - Sprites - Basic pack/Tilesets 路径中导入 门(下载链接见文末);

在这里插入图片描述

第六步, 默认 动画导入时,水平设置为1,垂直设置为4,选中门后添加;

在这里插入图片描述
在这里插入图片描述
第七步, 开门 动画导入时,水平设置为1,垂直设置为4,按图中顺序选中门后添加;

在这里插入图片描述
在这里插入图片描述
第八步,选中 CollishionShape2D 节点,在检查器新建长方形碰撞体,并调整大小以适应门;

在这里插入图片描述
在这里插入图片描述
第九步,将门场景保存在 res://场景/家园 路径下;

在这里插入图片描述

二、自动开关门

第一步,我们新建场景与节点;

  • 可交互组件(Area2D)

在这里插入图片描述
第二步,将可交互组件保存在 res://场景/组件 路径下;

在这里插入图片描述
第三步,在检查器中连接信号body_entered(body:Node2D), body_exited(body: Node2D);

在这里插入图片描述
第四步,给 可交互组件 附加脚本;

extends Area2D

signal 已进入
signal 已离开


func _on_body_entered(body: Node2D) -> void:
	已进入.emit()


func _on_body_exited(body: Node2D) -> void:
	已离开.emit()
	

第五步,将可交互组件添加到 门 场景下,并添加 CollishionShape2D 节点,在检查器中设为 胶囊形 碰撞体;

在这里插入图片描述
第六步,在 项目设置->常规->层名称 中,将Layer4命名为交互组件;

在这里插入图片描述
第七步,将 可交互组件 场景的物理层设为4(交互组件层),物理掩码层设置为2(玩家层);

在这里插入图片描述
第八步,给 门 附加脚本;

extends StaticBody2D

@onready var 可交互组件: Area2D = $"可交互组件"
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D

func _ready() -> void:
	可交互组件.已进入.connect(开门)
	可交互组件.已离开.connect(关门)
	# 默认碰撞生效
	collision_layer = 1


func 开门() ->void:
	animated_sprite_2d.play("开门")
	# 碰撞失效
	collision_layer = 2
	
	
func 关门() ->void:
	# 倒放开门动画,即关门
	animated_sprite_2d.play_backwards("开门")
	# 碰撞生效
	collision_layer = 1

第九步,在 res://场景/家园/房屋.tscn 进入房屋场景,选中 墙壁 节点后,在TileSet中添加场景合集;

在这里插入图片描述
在场景合集中导入 门 场景;

请添加图片描述
第十步,在 房屋 场景中绘制门;

请添加图片描述
第十一步,回到 测试_房屋 场景,进行测试;

请添加图片描述

三、自动显隐的屋顶

第一步,转到 房屋 场景,添加子节点 房顶(TileMapLayer) 节点;

在这里插入图片描述
第二步,从路径 res://资产/Sprout Lands - Sprites - Basic pack/Tilesets/ 中导入TileSet(下载链接见文末);

在这里插入图片描述
第三步,在TileSet中选中如图所示图块;

在这里插入图片描述
第四步,在TileMap中绘制屋顶;

由于是俯视角,所以屋顶应该在中间偏上位置,上方的屋檐越过墙壁,下方的屋檐与墙壁平齐:

在这里插入图片描述
注意,有些瓦片是有光影变化的,这里只做简单的无光影变化的成品展示:

在这里插入图片描述
第五步,为房顶节点添加子节点 可交互组件 与 CollishionShape2D 节点;

在这里插入图片描述
第六步,设置CollishionShape2D的碰撞体形状为 长方形 ;

在这里插入图片描述
第七步,为 房顶 节点附加脚本;

extends TileMapLayer

@onready var 可交互组件: Area2D = $"可交互组件"

func _ready() -> void:
	可交互组件.已进入.connect(隐藏)
	可交互组件.已离开.connect(显示)


func 隐藏() ->void:
	# 第一种效果:完全隐藏
	#hide()
	# 第二种效果:部分隐藏
	modulate = Color(1, 1, 1, 0.5)
	

func 显示() ->void:
	# 显示
	#show()
	# 第二种显示
	modulate = Color(1, 1, 1, 1)

第八步,脚本中提供了两种显示/隐藏方法,测试如下;

请添加图片描述
请添加图片描述
测试完成!

四、免费开源资产包

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

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

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

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

Godot 4.3开发指南:构建类星露谷游戏的玩家移动系统 在2D游戏开发中,玩家移动系统是交互体验的核心基础,它直接关系到操作手感和游戏沉浸感。其原理通常涉及输入处理、物理模拟与动画状态机的协同工作。通过合理的技术实现,开发者可以确保角色响应精准、动画流畅,并为后续的交互逻辑奠定基础。在类似《星露谷物语》的农场模拟经营游戏中,一个稳定且可扩展的移动系统尤为重要,它需要支持八方向行走、碰撞检测及与未来工具使用、NPC对话等功能的平滑衔接。本文以热门的Godot 4.3引擎为实践环境,详细解析如何使用CharacterBody2D和AnimatedSprite2D等核 阅读详情

相关推荐

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

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

weixin_30645617的博客 399

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

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

ForBigData的博客 1112

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

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

weixin_34345753的博客 354

Godot4.3类星露谷游戏开发之【实现玩家移动】

使用Godot引擎实现2D角色基础移动控制,通过输入映射绑定WASD按键,根据移动向量切换四方向行走动画,记录最后朝向播放对应空闲动画,集成相机跟随功能,并附Sprout Lands像素素材包获取教程。

ForBigData的博客 1895

Godot 4 实战:复刻《星露谷物语》核心玩法,掌握2D游戏开发全流程

2D游戏开发是独立游戏和原型制作的热门领域,其核心在于将游戏设计理念通过引擎工具转化为可交互的体验。Godot引擎以其轻量、开源和节点化的工作流,成为实现这一过程的高效选择,特别适合快速构建包含探索、资源管理和角色扮演元素的游戏原型。本教程聚焦于通过复刻《星露谷物语》的经典农场模拟玩法,系统性地实践Godot 4的2D开发全流程。你将从零搭建一个包含可交互地图、角色控制、物品背包、昼夜循环和NPC对话等核心模块的项目,深入理解GDScript脚本编程、场景管理和信号通信等关键技术。整个过程注重工程实践与代码

weixin_34034670的博客 337

学霸带你游戏化 Godot 引擎世界你好

Godot 引擎作为一个开源工具,提供了丰富的功能来支持 2D 和 3D 游戏的开发。其核心功能包括灵活的场景系统、强大的动画工具和多语言脚本支持。了解这些功能可以帮助开发者在项目中充分利用 Godot 的优势,创建出色的游戏作品。本文的第一部分将详细介绍 Godot 引擎的基本功能、支持的平台和编程语言。Godot 是一个强大的开源游戏引擎,支持 2D 和 3D 游戏开发。其设计目标是提供一个高效且灵活的开发环境,同时保持开源特性,允许开发者自由修改和分发。

纽雪澳诺加海美德的博客 2417

Godot4.3类星露谷游戏开发之【简单开始界面】

使用Node2D节点和Button节点制作简易游戏开始按钮

ForBigData的博客 1961

Innovus快捷键大全:从入门到精通的效率提升指南

本文是Innovus快捷键从入门到精通的效率提升指南,旨在帮助芯片后端设计工程师通过掌握核心快捷键,将重复性鼠标操作转化为高效的肌肉记忆,从而显著提升版图设计、编辑和分析的工作流速度。文章系统讲解了视图导航、对象选择编辑、流程管理等关键快捷键组合,并提供了个性化配置与实战策略,助力工程师突破效率瓶颈,实现人机合一的流畅设计体验。

silver的专栏 797

Godot4.3类星露谷游戏开发之【昼夜循环】

本文实现实现动态昼夜循环系统,文末附完整项目代码+免费开源像素素材包。

ForBigData的博客 1389

用Stata复现经典文献:上市公司全要素生产率(TFP)计算全流程(含LP/OP代码解读)

本文提供了使用Stata软件复现上市公司全要素生产率(TFP)计算的完整实战指南。重点解读了主流的Levinsohn-Petrin(LP)和Olley-Pakes(OP)半参数估计方法,通过详细的数据清洗、变量构建与价格平减步骤,手把手演示了如何准确测算TFP,并强调了LP方法在处理中国上市公司数据时的稳定性和适用性。

b0c1d2的博客 592

基于STM32与CAN总线的多电机协同控制系统设计与实现

本文详细介绍了基于STM32与CAN总线的多电机协同控制系统设计与实现。该系统采用分布式架构,通过CAN总线实现多节点通信,结合梯形加减速算法和同步控制策略,有效解决了工业自动化中多电机同步性差的问题。文章涵盖硬件设计、通信协议、抗干扰措施及实战调试经验,为工业应用提供高可靠性解决方案。

tech5的博客 970

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

在Godot中创建可收集物品:用Sprite2D显示贴图,添加Area2D检测玩家接触,通过queue_free()销毁父节点,调试可见碰撞区域,文末附开源游戏资源包。

ForBigData的博客 1552

Obsidian + AI 自动知识管理:手把手教程

装完后,在命令面板(Ctrl+P)搜 "Generate Summary",AI 会在当前笔记末尾追加一段摘要。你一个月前写的、现在想快速回顾的笔记长篇笔记(三千字以上)开会记录这类信息密集的内容过度自动化。有人装上插件后,所有笔记都让 AI 打标签、写摘要、找关联。最后笔记库看起来整整齐齐,但全都是 AI 的链接,你自己完全没参与。这样做的后果是什么?你写过的笔记跟你没有"真实连接"。你还是记不住。你还是不知道自己的知识库里有什么。AI 推荐,你决策。

weixin_43571227的博客 747

Godot4.3类星露谷游戏开发之【小鸡NPC】

为NPC角色实现智能移动,包含路径导航、动态避障;文末附完整项目代码+免费开源像素素材包。

ForBigData的博客 3529

【C语言】程序员筑基功法——《函数栈帧的创建与销毁》

汇编角度带你走进函数栈帧

StackFrame 3657

【Windows Server 2019】组策略的配置与管理——理论基础

博文介绍了组策略的定义,作用和分类。组策略包括计算机配置和用户配置;组策略又分为为基于本地的组策略和基于AD(活动目录)的域组策略。并说明了不同组策略发生冲突时默认的规则。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

Godot4.3类星露谷游戏开发之【时钟UI】

本文详细介绍了如何制作一个时钟UI界面。首先,在指定路径下创建时钟UI场景,并构建节点树,包括时钟面板、昼夜图标和当前时间等元素。接着,通过新建主题并设置样式,逐步调整时钟面板的尺寸和类型。随后,导入并编辑图标资源,将其拖入UI中,并设置动画帧数。最后,加载主题并设置当前时间的字体和大小,调整位置后,将时钟UI实例化到游戏UI场景中,并设置边距以确保布局合理。文末附完整项目代码+免费开源像素素材包。

ForBigData的博客 1630

SAP 成本分摊逻辑与案例(含具体数据)

摘要: SAP成本分摊通过**分配(Allocation)与分摊(Assessment)**两种方式,将间接成本中心费用按预设规则(如人数、工时、比例等)结转至直接成本对象。分配保留原始成本要素(如电费、工资),适用于需明细追踪的场景;分摊则打包为次级成本要素(如管理费用),简化核算。实操案例涵盖行政费用分配(按人数)、水电车间分摊(按工时)、机修作业分摊(作业成本法)及内部订单结算,系统通过KSV1/KSU1配置循环规则,KSV5/KSU5执行结转。关键点在于选择匹配业务的分摊基础,合理配置次级成本要素,

金牌架构师 550

Godot4.3类星露谷游戏开发之【生长的小麦】

本教程讲解如何在Godot 4.3中构建小麦生长系统:通过时间管理组件驱动作物分阶段成长(发芽/成长/成熟),利用动画帧切换实现视觉变化,集成碰撞检测与掉落物生成机制。核心步骤包括创建带生长状态机的作物场景、配置时间监听信号、设置阶段变更事件,最终通过测试场景验证浇水后小麦的动态生长效果。文内附完整开源精灵包资源+脚本,完整呈现种植系统核心逻辑。

ForBigData的博客 1731

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Godot4.3类星露谷游戏开发之【地图创建】(上)

在Godot中用 TileMapLayer 节点分层制作场景:地面层和水面层独立绘制,通过节点顺序控制层级叠加,复用图块资源实现水面覆盖地面的视觉效果,为后续动态地形与水流效果作准备。

ForBigData的博客 3136

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

《Godot4.3类星露谷游戏开发教程》系列新章发布!本文将手把手教你创建一个美观实用的库存UI系统,包含库存面板设计、物品槽布局、物品纹理显示与数量管理。通过详细的图文步骤,你将学习使用AtlasTexture、Theme资源、NinePatchRect等组件搭建UI,并解决布局中的常见问题。文末提供免费开源资产包下载链接。从零开始,轻松打造专属库存面板,让你的游戏体验更上一层楼!立即阅读,开启创作之旅吧!

ForBigData的博客 1447

Godot4.3类星露谷游戏开发之【创建家园】

创建房屋场景,包含地板/墙壁/家具三层,附开源精灵图资源包​(含全套房屋资产)

ForBigData的博客 981

Godot4.3类星露谷游戏开发之【可砍伐的树】

利用碰撞/受击箱机制实现可砍伐树木:创建树场景并配置碰撞体,通过Area2D组件检测交互,结合动画与脚本实现生命值管理及木头掉落,最终完成交互式砍树功能。

ForBigData的博客 1399

Godot4.3类星露谷游戏开发之【地图创建】(下)

Godot4.3地图创建教程:通过地形集配置实现草地自动拼接,利用动画帧制作流动水面,附开源素材包下载。

ForBigData的博客 1115

Godot4.3类星露谷游戏开发之【创建玩家角色】

本教程指导使用Godot引擎创建玩家角色:导入精灵图资源包,构建以CharacterBody2D为根节点的场景,添加AnimatedSprite2D配置四方向空闲/行走动画,设置CollisionShape2D胶囊碰撞体,调整纹理渲染模式避免模糊,最终完成具备基础动画和物理交互的角色。教程附开源精灵图资源(Sprout Lands Asset Pack)获取方式。

ForBigData的博客 1671
上一篇: Godot4.3类星露谷游戏开发之【创建家园】
下一篇: 【极简】Godot4.4 快速搭建测试场景A(附完整代码/素材包)
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、付费专栏及课程。

余额充值