角色一走出窗口,游戏就看起来「坏了」。Camera2D 是 2D 小游戏里最便宜的跟拍方案。
挂法
在 Player 下加子节点 Camera2D,勾选 Enabled。运行时相机会跟着角色的全局坐标走,不用写脚本。
需要缓动时,在相机上打开 Position Smoothing,速度 5–10 比较稳。数值太大,转弯会拖泥带水。
不要跟出地图
勾选 Limit,按 TileMap 像素范围填:
- Limit Left / Top:0
- Limit Right / Bottom:地图宽高
或者用脚本在就绪时读地图:
gdscript
func _ready() -> void:
var rect := $Map.get_used_rect()
var ts := $Map.tile_set.tile_size
limit_left = rect.position.x * ts.x
limit_top = rect.position.y * ts.y
limit_right = rect.end.x * ts.x
limit_bottom = rect.end.y * ts.y这段挂在 Camera2D 上,Map 换成你的 TileMapLayer 路径。
拖动边距
Drag Margins 让角色在画面中间一块「死区」里走动,相机才跟。平台跳跃把左右边距开到 0.2,比全程死跟更不容易晕。
一屏内的微型游戏可以不跟相机。地图比窗口大,再加 Camera2D。
