58 lines
1.1 KiB
GDScript3
58 lines
1.1 KiB
GDScript3
|
extends Node2D
|
||
|
|
||
|
@export var enabled := true
|
||
|
# 追击开始距离
|
||
|
@export var start_distance := 400
|
||
|
# 追击开始方位(左/右)
|
||
|
@export var from_left := true
|
||
|
# 追击速度
|
||
|
@export var speed := 30
|
||
|
# 脚步声周期时间
|
||
|
@export var footstep_wait_time := 0.7
|
||
|
|
||
|
@onready var sfx_footstep = $SfxFootstep as Sfx
|
||
|
|
||
|
var footstep_timer
|
||
|
|
||
|
|
||
|
func _ready() -> void:
|
||
|
var player = SceneManager.get_player()
|
||
|
# 高度对齐
|
||
|
position.y = player.position.y
|
||
|
# 脚步声 timer
|
||
|
footstep_timer = Timer.new()
|
||
|
footstep_timer.autostart = false
|
||
|
footstep_timer.wait_time = footstep_wait_time
|
||
|
add_child(footstep_timer)
|
||
|
footstep_timer.timeout.connect(_on_footstep_timer_timeout)
|
||
|
|
||
|
|
||
|
func _on_footstep_timer_timeout() -> void:
|
||
|
sfx_footstep.play()
|
||
|
# shake camera
|
||
|
|
||
|
|
||
|
# 启用/禁用脚步声
|
||
|
func toggle_footstep_sfx(play := true):
|
||
|
if play:
|
||
|
footstep_timer.start()
|
||
|
else:
|
||
|
footstep_timer.stop()
|
||
|
|
||
|
var move_tween :Tween
|
||
|
|
||
|
# 开始追击
|
||
|
func start_chasing() -> void:
|
||
|
toggle_footstep_sfx(true)
|
||
|
# 初始位置与方向
|
||
|
|
||
|
|
||
|
# 停止追击
|
||
|
func stop_chasing() -> void:
|
||
|
toggle_footstep_sfx(false)
|
||
|
|
||
|
# 转身追击
|
||
|
func turn_back():
|
||
|
# 呼吸一帧,然后转身
|
||
|
pass
|