33 lines
1,022 B
GDScript
33 lines
1,022 B
GDScript
tool
|
|
extends "res://objects/enemy/enemy.gd"
|
|
|
|
## the radius the ghost orbits around
|
|
export var radius: float = 0.0
|
|
## initital rotation offset in full circles
|
|
export var initial_angle: float = 0.0
|
|
## speed the ghost revolves in cycles/second
|
|
export var speed: float = 0.0
|
|
|
|
onready var pivot: Node2D = $Pivot
|
|
onready var remote_transform: RemoteTransform2D = $Pivot/RemoteTransform
|
|
|
|
func _ready() -> void:
|
|
pivot.rotation = TAU * initial_angle
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
if Engine.editor_hint:
|
|
return
|
|
# update radius
|
|
remote_transform.position.x = radius * 8.0
|
|
# process rotation
|
|
pivot.rotation += speed * delta * 0.785398 # TAU / l8.0
|
|
|
|
func _process(delta: float) -> void:
|
|
if Engine.editor_hint and Engine.get_frames_drawn() % 10 == 0:
|
|
get_node("Pivot").rotation = TAU * initial_angle
|
|
get_node("Pivot/RemoteTransform").position.x = radius * 8.0
|
|
update()
|
|
|
|
func _draw() -> void:
|
|
if Engine.editor_hint:
|
|
draw_arc(Vector2(4.0, 4.0), radius * 8.0, 0.0, TAU, 13, Color(0.0, 1.0, 1.0, 0.1), 1.5)
|