Godot学习日志Day2
本文介绍了在Godot4引擎中创建和优化2D相机的方法。首先,相机可以直接在角色节点下创建Camera2D。其次,讲解了相机的三个关键属性:Limit(限制相机移动的矩形范围)、Drag(规定相机跟随的矩形范围)和PositionSmoothing(提供平滑移动的速度控制)。最后,为了适应动态变化的地图,提供了一个自动定义相机Limit的脚本,通过获取地图的组件和方块大小来设置相机的边界,并在启动
一、引言
继续学习,今天是相机。
(原作者教程视频链接:Godot 4 教程《勇者传说》)
二、相机的创建与应用
1、创建
直接在角色节点下创建Camera2D。

2、解读
除了初始位置一般都为(0,0)之外,我们需要了解三个东西。
第一个是Limit,我们的相机会在这四个位置所组成的矩形里运动,意思是说,相机的边框如果到了该位置,无论你怎么动,它都不会再移动了。
第二个是Drag,它会规定一小片位置,如果我们在这个小矩形里移动,相机将不会跟随,而我们出了这个范围,相机才会跟随上。
第三个是PositionSmoothing,它提供给了Drag丝滑的移动,而下面的Speed,则是相机跟随上的速度。

3、优化
我们的地图在不断地变化,所以最好来个全自动定义Limit的方法,方法如下:
extends Node2D
#导入组件
@onready var camera_2d: Camera2D = $Player/Camera
@onready var tile_map: TileMap = $TileMap
func _ready() -> void:
#获得地图的组件?
var used := tile_map.get_used_rect()
#获得一个方块的大小
var tile_size := tile_map.tile_set.tile_size
#开始定义边际:数量 * 大小
camera_2d.limit_top = used.position.y * tile_size.y
camera_2d.limit_right = used.end.x * tile_size.x
camera_2d.limit_bottom = used.end.y * tile_size.y
camera_2d.limit_left = used.position.x * tile_size.x
#在启动时忽略丝滑位移,防止在开始时相机出界
camera_2d.reset_smoothing()
该脚本在世界节点下,其实在哪里都可以,只要引用不出错就行。
三、结语
相机很简单,继续加油吧。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)