godot-plateformer/_shared/camera_room.gd

34 lines
982 B
GDScript

class_name CameraRoom extends Node2D
@onready var phantom_camera2d: PhantomCamera2D = $PhantomCamera2D
@onready var default_start_point: Node2D = $PlayerStartPoint
@export var _room_id : int = -1
func _ready() -> void:
#room_entrance.body_entered.connect(_handle_body_enter_room)
RoomSystem.room_changed.connect(_handle_global_room_changed)
##绑定一个Room下面的room entrance到进入这个房间
for r in self.get_children():
if r is RoomEntrance:
r.body_entered.connect(_handle_body_enter_room)
r.init_room_entrance(self)
func _handle_body_enter_room(body: Node2D) -> void:
if RoomSystem.current_room_id == self._room_id:
return
if body != null:
RoomSystem.update_current_room_id(self._room_id)
return
func _handle_global_room_changed(room_id: int) -> void:
if room_id == self._room_id:
_update_room_to_self()
func reset_priority() -> void:
phantom_camera2d.priority = 0
func _update_room_to_self() -> void:
phantom_camera2d.priority = 99