Initial WhaleTown V2 frontend
This commit is contained in:
42
scenes/Maps/Square.gd
Normal file
42
scenes/Maps/Square.gd
Normal file
@@ -0,0 +1,42 @@
|
||||
class_name Square
|
||||
extends Node2D
|
||||
|
||||
# ============================================================================
|
||||
# Square.gd - 广场场景控制器
|
||||
# ============================================================================
|
||||
# 负责广场玩家出生点和玩家相机边界配置,避免运行时看到地图外区域。
|
||||
# ============================================================================
|
||||
|
||||
const CAMERA_ZOOM: Vector2 = Vector2(2.0, 2.0)
|
||||
const CAMERA_LIMIT_LEFT: int = -1280
|
||||
const CAMERA_LIMIT_TOP: int = -960
|
||||
const CAMERA_LIMIT_RIGHT: int = 1280
|
||||
const CAMERA_LIMIT_BOTTOM: int = 960
|
||||
|
||||
@onready var player: PlayerController = $YSortWorld/Characters/Players/Player
|
||||
@onready var playerCamera: Camera2D = $YSortWorld/Characters/Players/Player/Camera2D
|
||||
@onready var overviewCamera: Camera2D = $Camera2D
|
||||
|
||||
func _ready() -> void:
|
||||
_apply_spawn_point()
|
||||
_configure_camera()
|
||||
|
||||
func _apply_spawn_point() -> void:
|
||||
var spawnName: String = SceneManager.get_next_spawn_name()
|
||||
var markerName: String = spawnName if not spawnName.is_empty() else "DefaultSpawn"
|
||||
var marker := $Markers.get_node_or_null(markerName) as Marker2D
|
||||
if marker == null:
|
||||
marker = $Markers/DefaultSpawn
|
||||
player.global_position = marker.global_position
|
||||
|
||||
func _configure_camera() -> void:
|
||||
overviewCamera.enabled = false
|
||||
playerCamera.enabled = true
|
||||
playerCamera.make_current()
|
||||
playerCamera.zoom = CAMERA_ZOOM
|
||||
playerCamera.position_smoothing_enabled = true
|
||||
playerCamera.limit_left = CAMERA_LIMIT_LEFT
|
||||
playerCamera.limit_top = CAMERA_LIMIT_TOP
|
||||
playerCamera.limit_right = CAMERA_LIMIT_RIGHT
|
||||
playerCamera.limit_bottom = CAMERA_LIMIT_BOTTOM
|
||||
playerCamera.limit_smoothed = true
|
||||
Reference in New Issue
Block a user