| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- extends Parallax2D
- var level_bpm := 120
- @export var level := 0.5
- var is_star := false
- var beats := -1
- var tween: Tween = null
- func _ready() -> void:
- modulate.a = 0
- AudioManager.music_beat.connect(on_timeout)
- on_timeout()
- func _physics_process(delta: float) -> void:
- scroll_offset.y = lerpf(scroll_offset.y, lerpf(128, 0, level), delta * 5)
- modulate.a = lerpf(modulate.a, lerpf(0, 1, level), delta * 5)
- $TextureRect.position.y = move_toward($TextureRect.position.y, -64, delta * (level_bpm / 10))
- func on_timeout(idx := 0) -> void:
- beats = idx
- if is_star == false:
- tween_back()
- if beats % 4 == 0:
- $AudioStreamPlayer.pitch_scale = 2
- else:
- $AudioStreamPlayer.pitch_scale = 1
- $AudioStreamPlayer.play()
- func tween_back() -> void:
- if tween != null:
- tween.kill()
- tween = create_tween().set_trans(Tween.TRANS_CUBIC)
- tween.tween_property($TextureRect, "position:y", -160, 0.05)
- func on_starttimeout() -> void:
- if is_star:
- tween_back()
|