godot2D游戏教程系列二(10)

成功制作了一个有层次感、能正确遮挡角色的草丛场景。

具体实现了:

  • 新建草丛场景,根节点使用 Area2D
  • 添加 CollisionShape2D(矩形碰撞)
  • 添加 Sprite2D 显示草丛图片
  • 使用 Region 区域功能,只裁剪显示需要的草丛部分
  • 开启栅格吸附(48×32)精准选取素材
  • 将草丛加入主场景

为了解决遮挡问题:

  • 新建父节点 Level
  • 把 Grass 和 Player 放入 Level
  • 开启 Y 轴排序(Y Sort)
  • 草丛精灵设置 Y 偏移为 -10

实现效果:

  • 玩家走到草丛下方时显示在前面
  • 玩家走到草丛上方时被草丛遮挡
  • 实现正确的前后层级关系

最后:

  • 额外添加一个后层草丛精灵(Sprite2D_Back)
  • 同样裁剪素材并设置 Y 偏移 -10
  • 放到前一个草丛上方,增强视觉层次

最终效果:

草丛既有碰撞区域,又有前后遮挡关系,还增加了视觉层次,场景更加真实自然。

  • 实现过程:
  • 创造给草地添加草丛,我们希望草丛场景的根节点是Area2D,所以我们新建一个场景,创建其他节点
  • 然后重命名为Grass,并且保存到我们场景文件夹中
  • 然后我们添加一个碰撞形状的2d节点
  • 然后我们为这个节点添加一个新的矩形形状2d
  • 然后我们来给节点添加精灵节点,是为了添加上视觉效果,
  • 然后我们添加上草从的素材,拖动到精灵节点的纹理属性之后,我们就可以看到我们的图片啦
  • 不过我们实际上只想显示左侧的草从部分,所以我们可以使用精灵2d节点的区域功能,只在屏幕上显示一个区域的内容,我们找到精灵节点检查器中的Region属性进行启用然后点击编辑
  • 然后我们改为栅格吸附模式,改步长为48*32,然后框选第一个草丛
  • 然后点击关闭之后就可以看到我们框选的草丛啦
  • 然后我们将草丛添加到游戏场景中,然后我们会发现草地显示是在玩家角色的上方,所以我们可以用白色遮罩功能进行修复
  • 我们在主场景添加一个新的基础的node2d节点,然后将grass和player拉到里面去,并且重命名为Level
  • 然后我们选择我们这个新建的节点开启按照y轴进行排序还有回到草丛场景那里选择精灵节点也开启按照y轴进行排序


*

  • 然后我们需要这个草丛的视觉效果是为欲场景的中心点上的,就像那个阴影一样,我们需要在这个精灵节点的属性上调整一下位置,我们打开offset属性进行调整y轴的属性,把y轴变为-10.这样子就可以让玩家在草丛上方时会隐藏在草丛后面,在草从下方时就会显示出来。
  • 然后我们为这个草丛在添加一个草丛,也是新建的2d精灵节点
  • 然后也是相同的流程添加草丛素材,然后打开区域编辑,选中第一列最下面的草丛,然后打开偏移y轴-10,然后重命名为Sprite2D_Back并且移动到上一个草丛的上方。这样子的操作是为了丰富这个草丛的视觉效果(我理解的是这样子)
相关推荐
andrsted3 分钟前
练题簿在线免费刷题:Excel、CSV 批量导题与章节整理,把现成表格变成日常题库
学习·微信小程序·小程序·刷题·在线刷题
yi0115 分钟前
DAY27: LeetCode 110. 平衡二叉树 | 在递归中判断是否平衡
人工智能·笔记·python·算法·leetcode·二叉树·递归
ab12376827 分钟前
MQTT笔记
java·笔记·mqtt·学习
承渊政道1 小时前
Linux网络学习【TCP Socket编程实战:connect的断线重连与客户端访问Linux验证】
linux·网络·学习·ubuntu·tcp·socket编程
qq_408606861 小时前
确界的倒数性质证明
学习·算法
sunoo-2291 小时前
嵌入式Linux驱动学习笔记(第3-6天):从misc封装、platform总线到设备树、中断与单总线外设实战
linux·arm开发·驱动开发·笔记·单片机·学习
一木 之林1 小时前
Agent智能体学习总结:从一次调用到模型自主规划、工具调用与 ReAct 循环的项目实战-6/6
前端·人工智能·学习·react.js
自不量力的A同学1 小时前
MooTool Next 1.3.0 发布
笔记
来包番茄沙司1 小时前
【网盘资源分享】2026新版尚硅谷AI Agent智能体极速版|全套课程资料+面经
人工智能·学习
每天题库1 小时前
塔式起重机安装拆卸工考试题库 真题模拟考前押题精准覆盖
学习·安全·考试·题库·考证