一、引言

        继续学习,今天是相机。

        (原作者教程视频链接: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()
	

        该脚本在世界节点下,其实在哪里都可以,只要引用不出错就行。

三、结语

        相机很简单,继续加油吧。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐