地图编辑部分教程总结

学习视频:https://player.bilibili.com/player.html?bvid=BV1NC4y1q7bZ&autoplay=0

资源下载:https://cupnooble.itch.io/sprout-lands-asset-pack

https://www.patreon.com/posts/scripts-godot-4-68719570

原视频地址:https://www.youtube.com/watch?v=Luf2Kr5s3BM

地图编辑部分教程总结

这部分的核心是使用 TileMap 节点和 TileSet 资源来构建一个可交互、有层次感且带有碰撞的游戏世界。

1. 创建并配置 TileMap
  • 添加节点 :在 GameLevel 场景中,右键添加一个 TileMap 子节点。
  • 创建 TileSet :在 TileMap 的检查器中,为其创建一个新的 TileSet 资源。这会在底部打开一个专门的 TileSet 编辑标签页。
2. 导入素材并自动切分瓦片
  • 拖入素材 :直接将 Sprout Lands 素材包中的各种图集(如草地 grass.png、山丘 hills.png、泥土 dirt.png、水 water.png、木屋 wooden_house.png、栅栏 fences.png 等)拖拽到 TileSet 编辑器中。
  • 自动切分:Godot 4 会弹出提示询问是否自动创建瓦片,选择"是"。引擎会智能地将整张图集切分成单个可用的瓦片,极大地简化了准备工作。
3. 使用多层(Layers)构建深度
  • 问题:有些瓦片(如山丘、房屋)带有透明区域,如果直接画在基础地面上,会显得很奇怪。
  • 解决方案 :为 TileMap 创建多个图层。
    • 基础地面层 (base ground):用于绘制不透明的基础地形,如草地。
    • 顶层地面层 (top ground):用于绘制带有透明区域的装饰性瓦片,如山丘、路径等,它们会覆盖在基础层之上。
    • 高处墙壁层 (high ground walls):用于绘制更高层级的物体,如房屋墙壁、悬崖壁,以营造高低错落的视觉效果。
  • Z-index 控制 :通过为不同图层设置不同的 Z Index(例如,将地面层设为 -5),确保玩家角色(默认 Z-index 为 0)始终能正确地在地面之上、墙壁之下或之上进行渲染。
4. 为瓦片添加碰撞(Collision)
  • 目标:让玩家无法穿过墙壁、悬崖等障碍物。
  • 步骤
    1. 创建物理层 :在 TileSet 的检查器中,展开 Physics Layers 并添加一个元素。这会创建一个默认的碰撞层(Layer 1, Mask 1)。
    2. 进入绘制模式 :在 TileSet 编辑器中,点击 Paint Properties 按钮,并选择刚刚创建的物理层(Physics Layer 0)。
    3. 绘制碰撞体
      • 对于简单的方形障碍物(如完整的墙壁瓦片),直接点击瓦片,Godot 会自动生成一个覆盖整个瓦片的矩形碰撞体。
      • 对于复杂的瓦片(如带斜坡的悬崖边缘),需要手动编辑碰撞形状。点击瓦片后,可以在编辑器中使用工具(如 Manual AddEdit Points)精确地绘制出只覆盖不可通行区域的碰撞多边形,确保玩家可以站在悬崖顶部但不能从侧面穿过去。

可以使用网格来确保连接的瓦片边缘可以连续

5. 添加随机性和细节
  • 随机绘制 :在绘制基础草地时,可以先选中多种变体的草地块,然后使用 Random 工具进行绘制,或者使用 Fill Bucket(油漆桶)填充后,通过调整 Scattering(散射)值来控制变体出现的频率,从而快速创建出自然、不重复的地表。
6. 锁定 TileMap 防止误操作
  • GameLevel 场景中选中 TileMap 节点,在检查器中勾选 Locked(锁定)。这样可以防止在视图中不小心拖动整个地图,但依然可以正常绘制瓦片。
7. 添加跟随相机(Camera2D)
  • 添加相机 :在 GameLevel 中添加一个 Camera2D 节点,并将其设为当前激活的相机(勾选 Current)。
  • 实现跟随 :为了让相机跟随玩家,需要在玩家 (Player Cat) 节点下添加一个 RemoteTransform2D 子节点。将 RemoteTransform2DRemote Path 指向场景中的 Camera2D 节点。这样,相机就会自动跟随玩家的位置移动。

通过以上步骤,教程成功地将一个空旷的场景变成了一个具有视觉层次、物理碰撞和动态视角的、可供玩家探索的完整游戏世界。

相关推荐
STCNXPARM2 天前
Linux camera之V4L2子系统详解
android·linux·camera·v4l2架构
STCNXPARM4 天前
Android camera之硬件架构
android·硬件架构·camera
STCNXPARM4 天前
Linux camera之Media子系统
linux·camera·v4l2·media子系统
会飞的一棵树8 天前
Godot UI布局指南
godot
浪客川11 天前
1972 GODOT 入门案例
android·java·godot
Physicist in Geophy.12 天前
game-bird
game
习惯就好zz17 天前
从奶牛NPC到完整场景构建
godot·cow·house·npc·tilemaplayer·bed
郝学胜-神的一滴20 天前
QtOpenGL多线程渲染方案深度解析
c++·qt·unity·游戏引擎·godot·图形渲染·unreal engine
我的golang之路果然有问题21 天前
unity 资源导入 godot
unity·游戏引擎·godot