一、引言
继续学习,今天是相机。
(原作者教程视频链接: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()
该脚本在世界节点下,其实在哪里都可以,只要引用不出错就行。
三、结语
相机很简单,继续加油吧。