48 lines
1.4 KiB
GDScript
48 lines
1.4 KiB
GDScript
extends Node2D
|
|
|
|
signal note_hit
|
|
signal note_miss
|
|
|
|
@export var note_speed : float = 1
|
|
#@export var frequency_min : float = 0.5
|
|
#@export var frequency_max : float = 2
|
|
@export var arrow_texture : Texture
|
|
@export var arrow_rotation : int =0
|
|
@export_group("Node References")
|
|
@export var detection_area : Area2D
|
|
@export var judgement_arrow : Sprite2D
|
|
@export var note_spawn_location : Marker2D
|
|
|
|
#var next_spawn_time : float = 10
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
judgement_arrow.rotation_degrees += arrow_rotation
|
|
#next_spawn_time = randf_range(frequency_min, frequency_max)
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
#next_spawn_time -= delta
|
|
#if next_spawn_time <= 0:
|
|
#next_spawn_time = randf_range(frequency_min, frequency_max)
|
|
#spawn_note()
|
|
pass
|
|
|
|
func spawn_note():
|
|
var new_note : Node2D = load("res://games/ddr/ddr_note.tscn").instantiate()
|
|
new_note.sprite.texture = arrow_texture
|
|
new_note.note_speed = note_speed
|
|
new_note.global_position = note_spawn_location.global_position
|
|
new_note.rotation_degrees += arrow_rotation
|
|
get_parent().add_child(new_note)
|
|
|
|
|
|
func _on_kill_area_entered(area: Area2D) -> void:
|
|
note_miss.emit()
|
|
|
|
func check_hit():
|
|
if (detection_area.get_overlapping_areas().size() > 0):
|
|
note_hit.emit()
|
|
detection_area.get_overlapping_areas()[0].get_parent().queue_free()
|