返回
一步步掌握Godot 3:构建封闭的游戏世界
见解分享
2023-09-01 11:56:37
构建封闭的游戏世界:Godot 3 引擎入门
在 Godot 3 游戏引擎的上一篇文章中,我们探讨了如何移动玩家和使用瓦片集创建游戏地图。在本篇教程中,我们将更进一步,学习如何为地图添加碰撞体,从而构建一个封闭且身临其境的游戏世界。
为何需要碰撞体?
碰撞体是用于定义游戏对象形状的无形对象。它们决定了对象与其他对象交互的方式,例如玩家角色是否能够移动穿过障碍物或敌人是否能够穿透墙体。
添加碰撞体:分步指南
-
导入瓦片集:
- 将瓦片集图像文件拖放到场景编辑器中。
- 右键单击瓦片集文件并选择“创建静态瓦片图层”。
-
创建碰撞形状:
- 在场景树中选择静态瓦片图层。
- 在“检查器”面板中,转到“碰撞”选项卡。
- 点击“添加碰撞形状”按钮。
- 根据瓦片集的形状选择碰撞形状类型(例如,凸多边形、矩形或圆形)。
-
定义碰撞形状:
- 对于凸多边形,单击并拖动以绘制形状的边界。
- 对于矩形,输入矩形的宽度和高度。
- 对于圆形,输入圆形的半径。
-
设置碰撞层:
- 在“检查器”面板的“碰撞”选项卡中,选择“碰撞层”。
- 为碰撞体分配一个层,以控制其与其他对象的交互方式。
-
保存更改:
- 点击“保存”按钮以保存对场景的更改。
代码示例
以下代码示例演示了如何在 Godot 3 中使用代码添加碰撞体:
# 导入瓦片集并创建静态瓦片图层
var tile_map = load("res://my_tile_map.tres")
add_child(tile_map)
var tile_layer = tile_map.get_child(0)
# 创建凸多边形碰撞形状
var polygon_shape = PolygonShape2D.new()
polygon_shape.points = [
Vector2(0, 0),
Vector2(16, 0),
Vector2(16, 16),
Vector2(0, 16),
]
# 为静态瓦片图层添加碰撞体
var collision_object = CollisionObject2D.new()
collision_object.collision_shape = polygon_shape
tile_layer.add_child(collision_object)
# 设置碰撞层
collision_object.collision_layer = 1
结语
通过在 Godot 3 中为地图添加碰撞体,我们创建了一个封闭且交互性的游戏世界。现在,玩家可以与环境交互,例如通过障碍物和避免陷阱。了解碰撞体是构建身临其境且引人入胜的游戏世界的重要一步。在未来的文章中,我们将继续探讨 Godot 3 的其他强大功能,以帮助您制作令人惊叹的游戏。