Godot学习日志Day2

一、引言

        继续学习,今天是相机。

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

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

三、结语

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值