channel-switcher/games/ddr/note_path.gd

49 lines
1.4 KiB
GDScript3
Raw Permalink Normal View History

2025-05-13 15:56:51 +10:00
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()