capri/objects/spring/spring.gd
2025-03-06 14:22:02 -05:00

26 lines
789 B
GDScript

extends Node2D
@export var bounce_power = 240.0
@export var horizontal_boost = 20.0
func _on_area_2d_body_entered(body: Node2D) -> void:
if body is Player:
var dir = Vector2(
1.0 if body.velocity.x >= 0.0 else -1.0,
-1.0 if body.velocity.y >= 0.0 else 1.0,
)
body.launch(Vector2(
body.velocity.x + (dir.x * horizontal_boost),
dir.y * bounce_power
))
#body.velocity.y = bounce_power * signf(-body.velocity.y)
#body.velocity.x += signf(body.velocity.x) * 20.0
##if body.velocity.y == 0:
##body.velocity.x = (body.jump_force * 1.5) * sign(-body.velocity.x)
##else:
##body.velocity.y = (body.jump_force * 1.5) * sign(-body.velocity.y)
##body.velocity.x += body.graphics.scale.x * 20.0
%AudioStreamPlayer.play()
%AnimationPlayer.play("bounce")