50 lines
849 B
GDScript
50 lines
849 B
GDScript
extends Node2D
|
|
|
|
var speed = 85
|
|
var minSpeed = -50
|
|
|
|
var decelDelay = 2.6
|
|
var decel = 82
|
|
|
|
var fadeDelay = 2.2
|
|
var fadeSpeed = 0.2
|
|
var fadeAccel = 0.13
|
|
|
|
var opacity = 0
|
|
|
|
var fadingIn = true
|
|
var fadeInSpeed = 0.9
|
|
|
|
func _ready():
|
|
set_opacities(opacity)
|
|
|
|
func _process(delta):
|
|
if decelDelay <= 0:
|
|
if speed > minSpeed:
|
|
speed -= decel * delta
|
|
else:
|
|
decelDelay -= delta
|
|
|
|
if fadingIn:
|
|
opacity += fadeInSpeed * delta
|
|
if opacity >= 1:
|
|
opacity = 1
|
|
fadingIn = false
|
|
elif fadeDelay <= 0:
|
|
opacity -= fadeSpeed * delta
|
|
fadeSpeed += fadeAccel * delta
|
|
else:
|
|
fadeDelay -= delta
|
|
|
|
set_opacities(opacity)
|
|
translate(Vector2(0, speed * -1) * delta)
|
|
|
|
func set_opacities(opacity):
|
|
$Water.modulate.a = opacity
|
|
$Foam.modulate.a = opacity + 0.15
|
|
if $Foam.modulate.a > 1:
|
|
$Foam.modulate.a = 1
|
|
|
|
if !fadingIn and opacity <= 0:
|
|
queue_free()
|