30 lines
625 B
GDScript
30 lines
625 B
GDScript
extends Node2D
|
|
|
|
const SEMITONE := 1.05946
|
|
const TIMEOUT := 1000
|
|
const MAX_PITCH := 2.0
|
|
|
|
const STATIC = {
|
|
pitch = -1.0,
|
|
timeout = -1,
|
|
}
|
|
|
|
|
|
func _ready():
|
|
#Sync all coinframes
|
|
$AnimatedSprite.play()
|
|
|
|
|
|
func _on_Area2D_body_entered(body: Node) -> void:
|
|
#Collect
|
|
if body.is_in_group("player"):
|
|
Game.keys += 1
|
|
Game.score += 5
|
|
# pitch increase
|
|
if Time.get_ticks_msec() < STATIC.timeout:
|
|
STATIC.pitch = min(STATIC.pitch + 1.0, MAX_PITCH)
|
|
else:
|
|
STATIC.pitch = -1.0
|
|
STATIC.timeout = Time.get_ticks_msec() + TIMEOUT
|
|
Audio.play_sound(Audio.a_key,Audio.ac_collectible, pow(SEMITONE, STATIC.pitch))
|
|
queue_free()
|