This commit is contained in:
Haze Weathers 2023-09-16 00:49:09 -04:00
parent 2c6dfcf5d8
commit fd2d7e73d8
6 changed files with 84 additions and 0 deletions

View file

@ -0,0 +1,24 @@
extends Node2D
export var segments: int = 8
onready var segment: RigidBody2D = $Segment
func _ready() -> void:
var line = segment.get_node("Line")
line.default_color = line.default_color.darkened(rand_range(-0.1, 0.1))
var last_segment = $Segment
for i in segments:
var new_segment = last_segment.duplicate(0)
add_child(new_segment)
new_segment.position.x -= 3.0
var joint = last_segment.get_node("Joint")
joint.node_a = joint.get_path_to(last_segment)
joint.node_b = joint.get_path_to(new_segment)
new_segment.apply_central_impulse(Vector2(30.0, rand_range(-10.0, -100.0)))
last_segment = new_segment
position.x += 1.5 * float(segments)
Audio.play_sound(Audio.a_spaghetti, Audio.ac_boss)

View file

@ -0,0 +1,28 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://objects/environment/spaghetti/spaghetti.gd" type="Script" id=1]
[sub_resource type="PhysicsMaterial" id=3]
friction = 0.25
[sub_resource type="CapsuleShape2D" id=1]
radius = 0.5
height = 3.0
[node name="Spaghetti" type="Node2D"]
script = ExtResource( 1 )
[node name="Segment" type="RigidBody2D" parent="."]
physics_material_override = SubResource( 3 )
[node name="Line" type="Line2D" parent="Segment"]
points = PoolVector2Array( -2, 0, 2, 0 )
width = 1.0
default_color = Color( 0.988235, 0.984314, 0.839216, 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="Segment"]
rotation = 1.5708
shape = SubResource( 1 )
[node name="Joint" type="PinJoint2D" parent="Segment"]
position = Vector2( -1.5, 0 )