Files
2026-07-16 23:51:08 +02:00

35 lines
751 B
GDScript

extends Node3D
@export var orbit_radius := 1.2
@export var orbit_speed := 0.45
@export var bob_height := 0.35
@export var phase := 0.0
@onready var left_wing: MeshInstance3D = $LeftWing
@onready var right_wing: MeshInstance3D = $RightWing
var _center := Vector3.ZERO
var _elapsed := 0.0
func _ready() -> void:
_center = position
_elapsed = phase
func _process(delta: float) -> void:
_elapsed += delta
var angle := _elapsed * orbit_speed
position = (
_center
+ Vector3(
cos(angle) * orbit_radius,
sin(_elapsed * 1.7) * bob_height,
sin(angle) * orbit_radius * 0.65
)
)
rotation.y = -angle + PI * 0.5
var flap := 22.0 + sin(_elapsed * 10.0) * 34.0
left_wing.rotation_degrees.z = flap
right_wing.rotation_degrees.z = -flap