From 2838046928db956b7712d24dfb63ee45fbc4d050 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Mon, 30 May 2022 04:28:12 -0600 Subject: add non-working segment system.. might need to go back to using rigidbodies --- .../actors/snake/body_segment/body_segment.gd | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/entities/actors/snake/body_segment/body_segment.gd (limited to 'src/entities/actors/snake/body_segment/body_segment.gd') diff --git a/src/entities/actors/snake/body_segment/body_segment.gd b/src/entities/actors/snake/body_segment/body_segment.gd new file mode 100644 index 0000000..eabede3 --- /dev/null +++ b/src/entities/actors/snake/body_segment/body_segment.gd @@ -0,0 +1,27 @@ +extends Node2D + +export(NodePath) var PREV_SEGMENT_NP: NodePath + +onready var prev_segment: Node2D = get_node(PREV_SEGMENT_NP) +onready var prev_segment_next_pivot: Node2D = prev_segment.get_node("NextPivot") +onready var _prev_pivot: Node2D = $PrevPivot +onready var _next_pivot: Node2D = $NextPivot + +var rot_speed: float = Global.SNAKE_SEGMENT_ROT_SPEED + +var prev_segment_next_pivot_to_center: Vector2 +var _center_to_prev_pivot: Vector2 +var _angle_between_segments: float + + +func _process(delta: float) -> void: + prev_segment_next_pivot_to_center = prev_segment_next_pivot.global_position - prev_segment.global_position + _center_to_prev_pivot = _prev_pivot.global_position - global_position + + _angle_between_segments = _center_to_prev_pivot.angle_to(prev_segment_next_pivot_to_center) + if _angle_between_segments > 0.0: + rotate(deg2rad(-rot_speed * delta)) + else: + rotate(deg2rad(rot_speed * delta)) + + global_position = prev_segment_next_pivot.global_position - _center_to_prev_pivot -- cgit v1.2.3