godot-plateformer/_props/_prefabs/player_trigger_volumn.gd

45 lines
905 B
GDScript

'''
此类为工具体积类,主要为检测玩家是否进入了检测体积。
'''
class_name PlayerTriggerVolumn
extends Area2D
@export var debug_print: bool = false
signal player_entered(body:CharacterBody2D)
signal player_exit(body:CharacterBody2D)
var _cached_player : Player
func _ready() -> void:
self.body_entered.connect(_on_body_enter)
self.body_exited.connect(_on_body_exit)
func _on_body_enter(body:Node2D) -> void:
if not body.is_in_group("PLAYER"):
return
var p = body as Player
if not p: return
if debug_print:
print("[TiggerVolumn]: Player Entered")
_cached_player = p
player_entered.emit(p)
func _on_body_exit(body:Node2D) -> void:
if not _cached_player: return
if not body.is_in_group("PLAYER"):
return
var p = body as Player
if not p: return
if debug_print:
print("[TiggerVolumn]: Player Exited")
_cached_player = null
player_exit.emit(p)