Working caterpillar movement
This commit is contained in:
parent
8a7df91bc1
commit
4ccca8b0ae
Binary file not shown.
@ -143,6 +143,7 @@ tracks/10/keys = {
|
|||||||
[sub_resource type="Animation" id=6]
|
[sub_resource type="Animation" id=6]
|
||||||
resource_name = "deathCam"
|
resource_name = "deathCam"
|
||||||
length = 2.3
|
length = 2.3
|
||||||
|
step = 0.01
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath(".:zoom")
|
tracks/0/path = NodePath(".:zoom")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
@ -265,8 +266,21 @@ tracks/9/keys = {
|
|||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [ false ]
|
"values": [ false ]
|
||||||
}
|
}
|
||||||
|
tracks/10/type = "value"
|
||||||
|
tracks/10/path = NodePath("ColorRect:visible")
|
||||||
|
tracks/10/interp = 1
|
||||||
|
tracks/10/loop_wrap = true
|
||||||
|
tracks/10/imported = false
|
||||||
|
tracks/10/enabled = true
|
||||||
|
tracks/10/keys = {
|
||||||
|
"times": PoolRealArray( 1.6 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ true ]
|
||||||
|
}
|
||||||
|
|
||||||
[node name="BlobbyCam" type="Camera2D"]
|
[node name="BlobbyCam" type="Camera2D"]
|
||||||
|
z_index = 3
|
||||||
rotating = true
|
rotating = true
|
||||||
current = true
|
current = true
|
||||||
zoom = Vector2( 0.75, 0.75 )
|
zoom = Vector2( 0.75, 0.75 )
|
||||||
@ -278,6 +292,16 @@ drag_margin_bottom = 0.0
|
|||||||
editor_draw_screen = false
|
editor_draw_screen = false
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
|
visible = false
|
||||||
|
margin_left = -320.0
|
||||||
|
margin_top = -180.0
|
||||||
|
margin_right = 320.0
|
||||||
|
margin_bottom = 178.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color( 0, 0, 0, 1 )
|
||||||
|
|
||||||
[node name="ShiftTween" type="Tween" parent="."]
|
[node name="ShiftTween" type="Tween" parent="."]
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
|||||||
@ -2,14 +2,17 @@ extends Player
|
|||||||
|
|
||||||
export var score := 100
|
export var score := 100
|
||||||
|
|
||||||
onready var left_rc = $SlopeRaycastLeft
|
onready var left_src = $SlopeRaycastLeft
|
||||||
onready var right_rc = $SlopeRaycastRight
|
onready var right_src = $SlopeRaycastRight
|
||||||
|
onready var left_wrc = $WallRaycastLeft
|
||||||
|
onready var right_wrc = $WallRaycastRight
|
||||||
|
|
||||||
var snap = Vector2.DOWN * 128
|
var time = 0
|
||||||
|
var snap = Vector2.DOWN * 24
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
set_physics_process(false)
|
set_physics_process(false)
|
||||||
velocity.x = -30
|
velocity.x = -120
|
||||||
|
|
||||||
|
|
||||||
# TODO adapt to groups
|
# TODO adapt to groups
|
||||||
@ -20,13 +23,19 @@ func _on_StompDetector_body_entered(body: Node) -> void:
|
|||||||
die()
|
die()
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
if(left_rc.is_colliding() && right_rc.is_colliding()):
|
# rotation
|
||||||
var length_vector: Vector2 = right_rc.get_collision_point() - left_rc.get_collision_point()
|
var movement = max(0,sign(sin(time*15)))
|
||||||
rotation = length_vector.angle()
|
if(left_src.is_colliding() && right_src.is_colliding() && !left_wrc.is_colliding() && !right_wrc.is_colliding()):
|
||||||
|
pass
|
||||||
|
elif(left_wrc.is_colliding() || (!right_src.is_colliding() && left_src.is_colliding())):
|
||||||
|
rotation += delta * 7 * movement
|
||||||
else:
|
else:
|
||||||
print(rad2deg(rotation))
|
rotation -= -sign(velocity.x) * delta * 7 * movement
|
||||||
rotation += sign(velocity.x) * delta * 1.2
|
|
||||||
move_and_slide_with_snap(velocity.rotated(rotation), snap.rotated(rotation), FLOOR_NORMAL, false, 4, PI)
|
# velocity
|
||||||
|
var v = Vector2(velocity.x * movement, 0)
|
||||||
|
time += delta
|
||||||
|
move_and_slide_with_snap(v.rotated(rotation), snap.rotated(rotation), FLOOR_NORMAL, false, 4, PI)
|
||||||
|
|
||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
|
|||||||
@ -13,7 +13,7 @@ extents = Vector2( 15, 6.12039 )
|
|||||||
extents = Vector2( 15.534, 10.0962 )
|
extents = Vector2( 15.534, 10.0962 )
|
||||||
|
|
||||||
[node name="Caterpillar" type="KinematicBody2D" groups=["harmful"]]
|
[node name="Caterpillar" type="KinematicBody2D" groups=["harmful"]]
|
||||||
scale = Vector2( 0.8, 0.8 )
|
scale = Vector2( 0.8, 0.5 )
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
collision_mask = 9
|
collision_mask = 9
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
@ -31,20 +31,32 @@ process_parent = true
|
|||||||
physics_process_parent = true
|
physics_process_parent = true
|
||||||
|
|
||||||
[node name="EnemyBody" type="CollisionShape2D" parent="." groups=["harmful"]]
|
[node name="EnemyBody" type="CollisionShape2D" parent="." groups=["harmful"]]
|
||||||
position = Vector2( 0, 6.48802 )
|
position = Vector2( 0, 6 )
|
||||||
scale = Vector2( 5.68128, 5.29182 )
|
scale = Vector2( 5.68128, 5.29182 )
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="SlopeRaycastLeft" type="RayCast2D" parent="."]
|
[node name="SlopeRaycastLeft" type="RayCast2D" parent="."]
|
||||||
position = Vector2( -11.25, 12.5 )
|
position = Vector2( -7.5, 12 )
|
||||||
enabled = true
|
enabled = true
|
||||||
cast_to = Vector2( 0, 13.75 )
|
cast_to = Vector2( 0, 1 )
|
||||||
collision_mask = 8
|
collision_mask = 8
|
||||||
|
|
||||||
[node name="SlopeRaycastRight" type="RayCast2D" parent="."]
|
[node name="SlopeRaycastRight" type="RayCast2D" parent="."]
|
||||||
position = Vector2( 11.25, 12.5 )
|
position = Vector2( 7.5, 12 )
|
||||||
enabled = true
|
enabled = true
|
||||||
cast_to = Vector2( -9.53674e-07, 13.75 )
|
cast_to = Vector2( 0, 1 )
|
||||||
|
collision_mask = 8
|
||||||
|
|
||||||
|
[node name="WallRaycastLeft" type="RayCast2D" parent="."]
|
||||||
|
position = Vector2( -15, 12 )
|
||||||
|
enabled = true
|
||||||
|
cast_to = Vector2( -2, 0 )
|
||||||
|
collision_mask = 8
|
||||||
|
|
||||||
|
[node name="WallRaycastRight" type="RayCast2D" parent="."]
|
||||||
|
position = Vector2( 15, 12 )
|
||||||
|
enabled = true
|
||||||
|
cast_to = Vector2( 2, 0 )
|
||||||
collision_mask = 8
|
collision_mask = 8
|
||||||
|
|
||||||
[node name="StompDetector" type="Area2D" parent="." groups=["weakpoint"]]
|
[node name="StompDetector" type="Area2D" parent="." groups=["weakpoint"]]
|
||||||
@ -62,7 +74,6 @@ process_priority = -1
|
|||||||
collision_mask = 126
|
collision_mask = 126
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionShape2D" parent="EnemySkin"]
|
[node name="CollisionPolygon2D" type="CollisionShape2D" parent="EnemySkin"]
|
||||||
position = Vector2( -5.68434e-14, 0 )
|
|
||||||
scale = Vector2( 1.03, 1.04 )
|
scale = Vector2( 1.03, 1.04 )
|
||||||
shape = SubResource( 3 )
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -54,7 +54,7 @@ position = Vector2( -259.915, 710.547 )
|
|||||||
position = Vector2( 220, 804 )
|
position = Vector2( 220, 804 )
|
||||||
|
|
||||||
[node name="Caterpillar" parent="." instance=ExtResource( 5 )]
|
[node name="Caterpillar" parent="." instance=ExtResource( 5 )]
|
||||||
position = Vector2( -41, 782 )
|
position = Vector2( -37, 786 )
|
||||||
|
|
||||||
[node name="Enemy2" parent="." instance=ExtResource( 6 )]
|
[node name="Enemy2" parent="." instance=ExtResource( 6 )]
|
||||||
position = Vector2( 492, 804 )
|
position = Vector2( 492, 804 )
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user