Snake/snakeManager.gd
2025-08-08 15:02:44 +10:00

39 lines
1,004 B
GDScript

extends Node2D
@export var segements_holder : Node2D
var segements : Array[snake_segment]
@export var SNAKE_SPEED : float = 0.2
@export var snake_line : Line2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
#segements = get_children() as Array[snake_segment]
segements.assign(segements_holder.get_children())
for i in segements.size():
if i == 0:
segements[i].is_head = true
else:
segements[i].next_segment = segements[i-1]
segements[i].snake_speed = SNAKE_SPEED
#segements[i].z_index = 100-i
activate_segment(0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
redraw_line()
pass
func activate_segment(act_segment : int):
for i in segements.size():
if act_segment == i:
segements[i].become_real()
else:
segements[i].become_fake()
func redraw_line():
snake_line.clear_points()
for segment in segements:
snake_line.add_point(segment.global_position)