diff options
author | David Luevano Alvarado <david@luevano.xyz> | 2022-05-30 04:28:12 -0600 |
---|---|---|
committer | David Luevano Alvarado <david@luevano.xyz> | 2022-05-30 04:28:12 -0600 |
commit | 2838046928db956b7712d24dfb63ee45fbc4d050 (patch) | |
tree | 777be86f84a28498964578a826dad81bb14e7c5c /src/entities/actors/snake/body_segment/body_segment.gd | |
parent | 0aa26dc19da1c8907cd69d18b423c33f351d3f2f (diff) |
add non-working segment system.. might need to go back to using rigidbodies
Diffstat (limited to 'src/entities/actors/snake/body_segment/body_segment.gd')
-rw-r--r-- | src/entities/actors/snake/body_segment/body_segment.gd | 27 |
1 files changed, 27 insertions, 0 deletions
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 |