通過相機發(fā)現(xiàn)更大的世界|Godot 4 教程《勇者傳說》#1

勇者傳說 #1
設(shè)置編輯器:
- 點擊編輯器=》編輯器設(shè)置=》文本編輯器=》不全=》添加類型提示(勾選)
- 類型補全能夠提gdscripts性能
- 后續(xù)補全能利用到類型信息

場景
1.選擇world場景,選擇TileMap節(jié)點,點擊下方TileMap菜單,選擇圖塊進行地圖擴展
- crtl+左鍵點擊 吸取單個圖塊
- crtl+按住左鍵拖動 吸取多個圖塊
- crtl+shift+按住左鍵拖動 繪制矩形區(qū)域
- 右鍵刪除圖塊

2.讓畫面跟隨玩家移動,給Player節(jié)點添加Camera2D節(jié)點

3.拖動相機的十字準星,可以調(diào)整相機的位置,按住crtl再拖動,可以方便的對齊到其他節(jié)點

4.對齊到Player節(jié)點的中心

5.游戲中相機并不總是跟隨玩家,玩家在屏幕中心附近有一定的自由活動空間
- 在Camera2D節(jié)點的Drag屬性勾選Horizontal Enable和Vertical Enable (水平和垂直方向上的相機拖動功能)
- 在Camera2D節(jié)點的Editor屬性勾選Draw Drag Margin,可以觀察到可自由活動的范圍,通過調(diào)整Drag屬性的Left Margin等,可以控制其大小,值是0至1的比例

6.實現(xiàn)相機平滑移動,勾選Camera2D節(jié)點的Position Smoothing下的Enabled
- 其中Speed可調(diào)整相機的平滑移動速度

7.限制相機拍攝范圍,禁止相機拍到地圖外,利用標尺量出地圖底部距離,然后在Camera2D的Limit中設(shè)置Bottom為量出的數(shù)值,接著勾選Smoothed實現(xiàn)相機碰到極限時平滑移動


8.代碼自動限制相機范圍,給World根節(jié)點添加腳本
extends Node2D @onready var tile_map: TileMap = $TileMap @onready var camera_2d: Camera2D = $Player/Camera2D 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 # 將相機的位置立即設(shè)置為其當前平滑的目標位置。 camera_2d.reset_smoothing()
標簽: