34 lines
1.2 KiB
GDScript
34 lines
1.2 KiB
GDScript
extends Node2D
|
|
|
|
var _time := 0.0
|
|
|
|
func _ready() -> void:
|
|
z_index = -2
|
|
var label := Label.new()
|
|
label.text = "WORMHOLE\nWleć, aby przejść do następnego układu"
|
|
label.position = Vector2(-180, 72)
|
|
label.size = Vector2(360, 44)
|
|
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
|
label.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
|
label.add_theme_font_size_override("font_size", 13)
|
|
label.add_theme_color_override("font_color", Color("89e8ff"))
|
|
add_child(label)
|
|
|
|
func _process(delta: float) -> void:
|
|
_time += delta
|
|
queue_redraw()
|
|
|
|
func _draw() -> void:
|
|
var pulse := 1.0 + sin(_time * 2.5) * 0.06
|
|
for ring in range(6, 0, -1):
|
|
draw_circle(Vector2.ZERO, (48.0 + ring * 4.0) * pulse, Color(0.28, 0.35, 0.95, 0.025 * (7 - ring)))
|
|
draw_circle(Vector2.ZERO, 43.0, Color("040917"))
|
|
for arm in 3:
|
|
var points := PackedVector2Array()
|
|
for segment in 65:
|
|
var progress := segment / 64.0
|
|
var angle := progress * TAU * 1.3 + _time * 1.6 + TAU * arm / 3.0
|
|
points.append(Vector2.RIGHT.rotated(angle) * (8.0 + progress * 44.0) * pulse)
|
|
draw_polyline(points, Color(0.35 + arm * 0.12, 0.55, 1.0, 0.8), 3.0, true)
|
|
draw_arc(Vector2.ZERO, 49.0 * pulse, 0, TAU, 96, Color("8beaff"), 2.0, true)
|