26 lines
789 B
GDScript
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")
|