mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 07:28:14 +00:00
34 lines
1.0 KiB
GDScript
34 lines
1.0 KiB
GDScript
extends Enemy
|
|
|
|
var falling := true
|
|
var target_player: Player = null
|
|
var can_rise := true
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
target_player = get_tree().get_first_node_in_group("Players")
|
|
if falling:
|
|
global_position.y += 32 * delta
|
|
if global_position.y >= target_player.global_position.y - 24 and can_rise:
|
|
rise_tween()
|
|
$Sprite.play("Fall")
|
|
else:
|
|
$Sprite.play("Rise")
|
|
|
|
func rise_tween() -> void:
|
|
falling = false
|
|
can_rise = false
|
|
var tween = create_tween().set_trans(Tween.TRANS_CUBIC)
|
|
var dir = sign(target_player.global_position.x - global_position.x)
|
|
var target_position := Vector2(32 * dir, -32)
|
|
var final_position = global_position + target_position
|
|
var top_point = -176
|
|
if Global.current_level != null:
|
|
top_point = Global.current_level.vertical_height + 32
|
|
final_position.y = clamp(final_position.y, top_point, 64)
|
|
|
|
tween.tween_property(self, "global_position", final_position, 0.75)
|
|
await tween.finished
|
|
falling = true
|
|
await get_tree().create_timer(0.25, false).timeout
|
|
can_rise = true
|