Airstrafe anim fix and wallslide anim direction fix

This commit is contained in:
Jakob Feldmann 2022-08-02 19:07:47 +02:00
parent 12c100e56a
commit 6eace8721c
6 changed files with 218 additions and 72 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 B

After

Width:  |  Height:  |  Size: 915 B

View File

@ -1,14 +1,14 @@
extends Player
const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
export var jump_buffer_filled := false
onready var wall_touch_direction = 0
onready var left_wall_raycasts = $WallRaycasts/LeftWallRaycast
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
onready var player_state_machine = $BlobbyStateMachine
onready var init_boost = player_state_machine.init_boost
onready var init_boost_type = player_state_machine.init_boost_type
onready var animation_player = $BlobbySprite/BlobbymationPlayer
onready var effect_player = $BlobbyActionEffects/AnimationPlayer
var wall_touch_direction = 1
# When the Enemy stomp AREA enters the enemy collision area -> stomp
func _on_BlobbySkin_area_entered(area: Area2D) -> void:
@ -55,7 +55,7 @@ func calculate_duck_velocity(
if velocity.x < 0:
velocity_direction = -1.0
# TODO This is essential for the duck/sliding mechanic
# TODO Improve this to separate crawling(slow) and sliding
var deceleration_force = calculate_deceleration_force(_gravity, mass)*0.333
# Slowing down movement when not controlling direction
@ -188,14 +188,14 @@ func is_reversing_horizontal_movement(direction: Vector2) -> bool:
# Also sets wall_touch_direction
func is_touching_wall_completely() -> bool:
for left_raycast in left_wall_raycasts.get_children():
if left_raycast.is_colliding():
wall_touch_direction = -1
if !left_raycast.is_colliding():
for right_raycast in right_wall_raycasts.get_children():
wall_touch_direction = 1
if !right_raycast.is_colliding():
wall_touch_direction = 0
return false
return true
for right_raycast in right_wall_raycasts.get_children():
if right_raycast.is_colliding():
wall_touch_direction = 1
return true
return false
# Attached to wall state is in the PlayerStateMachine
@ -309,6 +309,12 @@ func execute_airstrafe(
linear_velocity: Vector2, delta: float, direction: Vector2
) -> Vector2:
# var rev = 1 if !is_reversing_horizontal_movement(direction) else -1
# TODO Consider adding a extra state for airstrafing
# TODO Make airstrafing less instantaneous and moderate the impulse
if direction.x > 0:
effect_player.play("airstrafing")
else:
effect_player.play("airstrafingLeft")
if is_reversing_horizontal_movement(direction):
linear_velocity.x = 0
linear_velocity.x = PhysicsFunc.two_step_euler(

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=109 format=2]
[gd_scene load_steps=112 format=2]
[ext_resource path="res://assets/blobby/blobby-effects-spritesheet.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=2]
@ -102,6 +102,9 @@ blend_point_0/node = SubResource( 120 )
blend_point_0/pos = -1.0
blend_point_1/node = SubResource( 121 )
blend_point_1/pos = 1.0
min_space = -1.3
max_space = 1.3
snap = 0.5
[sub_resource type="AnimationNodeAnimation" id=128]
animation = "turnToRunLeft"
@ -135,9 +138,9 @@ animation = "wallslideToJumpRight"
[sub_resource type="AnimationNodeBlendSpace1D" id=136]
blend_point_0/node = SubResource( 134 )
blend_point_0/pos = 1.0
blend_point_0/pos = -1.0
blend_point_1/node = SubResource( 135 )
blend_point_1/pos = -1.0
blend_point_1/pos = 1.0
[sub_resource type="AnimationNodeAnimation" id=179]
animation = "wallsliding"
@ -275,12 +278,12 @@ states/turnToRun/position = Vector2( 1795.54, -308.991 )
states/walking/node = SubResource( 133 )
states/walking/position = Vector2( 1795.54, -54 )
states/wallslideToJump/node = SubResource( 136 )
states/wallslideToJump/position = Vector2( 1568.54, 459.009 )
states/wallslideToJump/position = Vector2( 1566.54, 380.009 )
states/wallsliding/node = SubResource( 96 )
states/wallsliding/position = Vector2( 1766.54, 606.009 )
states/wallsliding/position = Vector2( 1788.54, 501.009 )
transitions = [ "falling", "wallsliding", SubResource( 138 ), "wallsliding", "idling", SubResource( 139 ), "wallsliding", "wallslideToJump", SubResource( 140 ), "wallslideToJump", "jumping", SubResource( 141 ), "idling", "jumping", SubResource( 147 ), "runToJump", "jumping", SubResource( 148 ), "ducking", "jumping", SubResource( 149 ), "jumping", "jumpToFall", SubResource( 150 ), "jumpToFall", "falling", SubResource( 151 ), "ducking", "duckTurn", SubResource( 152 ), "duckTurn", "ducking", SubResource( 153 ), "falling", "ducking", SubResource( 154 ), "ducking", "falling", SubResource( 155 ), "ducking", "walking", SubResource( 156 ), "walking", "ducking", SubResource( 157 ), "idling", "ducking", SubResource( 158 ), "ducking", "idling", SubResource( 159 ), "ducking", "running", SubResource( 160 ), "running", "ducking", SubResource( 161 ), "running", "falling", SubResource( 162 ), "falling", "running", SubResource( 163 ), "walking", "falling", SubResource( 164 ), "falling", "walking", SubResource( 165 ), "falling", "idling", SubResource( 166 ), "idling", "walking", SubResource( 167 ), "walking", "idling", SubResource( 168 ), "walking", "turnToRun", SubResource( 169 ), "turnToRun", "walking", SubResource( 170 ), "running", "turnToRun", SubResource( 171 ), "turnToRun", "running", SubResource( 172 ), "idling", "idleTurn", SubResource( 173 ), "walking", "idleTurn", SubResource( 174 ), "idleTurn", "walking", SubResource( 175 ), "idling", "turnToRun", SubResource( 176 ), "turnToRun", "idling", SubResource( 177 ), "running", "runToJump", SubResource( 178 ), "wallsliding", "falling", SubResource( 137 ) ]
start_node = "idling"
graph_offset = Vector2( 1076.54, -268.991 )
graph_offset = Vector2( 1038.54, -170.991 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=48]
@ -458,7 +461,7 @@ tracks/13/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/14/type = "value"
tracks/14/path = NodePath("../BlobbyEffectsSprite:frame")
tracks/14/path = NodePath("../BlobbyStateEffects:frame")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/imported = false
@ -470,7 +473,7 @@ tracks/14/keys = {
"values": [ 8 ]
}
tracks/15/type = "value"
tracks/15/path = NodePath("../BlobbyEffectsSprite:position")
tracks/15/path = NodePath("../BlobbyStateEffects:position")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/imported = false
@ -482,7 +485,7 @@ tracks/15/keys = {
"values": [ Vector2( 3.07106, -16.064 ) ]
}
tracks/16/type = "value"
tracks/16/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/16/path = NodePath("../BlobbyStateEffects:visible")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/imported = false
@ -494,7 +497,7 @@ tracks/16/keys = {
"values": [ true ]
}
tracks/17/type = "value"
tracks/17/path = NodePath("../BlobbyEffectsSprite:scale")
tracks/17/path = NodePath("../BlobbyStateEffects:scale")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/imported = false
@ -506,7 +509,7 @@ tracks/17/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/18/type = "value"
tracks/18/path = NodePath("../BlobbyEffectsSprite:offset")
tracks/18/path = NodePath("../BlobbyStateEffects:offset")
tracks/18/interp = 1
tracks/18/loop_wrap = true
tracks/18/imported = false
@ -766,7 +769,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -914,7 +917,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -1063,7 +1066,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -1211,7 +1214,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -1360,7 +1363,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -1508,7 +1511,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -1656,7 +1659,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -1805,7 +1808,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -1953,7 +1956,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -2102,7 +2105,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -2250,7 +2253,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -2399,7 +2402,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -2547,7 +2550,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -2696,7 +2699,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -2710,7 +2713,7 @@ tracks/11/keys = {
[sub_resource type="Animation" id=49]
resource_name = "running"
length = 0.35
length = 0.3
loop = true
step = 0.05
tracks/0/type = "value"
@ -2722,7 +2725,7 @@ tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"update": 1,
"values": [ 14.0, 15.0, 16, 17.0, 18.0, 19.0, 20.0 ]
}
tracks/1/type = "value"
@ -2846,7 +2849,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:frame")
tracks/11/path = NodePath("../BlobbyStateEffects:frame")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -2858,7 +2861,7 @@ tracks/11/keys = {
"values": [ 6, 9, 9, 9, 5, 6, 7 ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/12/path = NodePath("../BlobbyStateEffects:visible")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/imported = false
@ -2870,7 +2873,7 @@ tracks/12/keys = {
"values": [ true ]
}
tracks/13/type = "value"
tracks/13/path = NodePath("../BlobbyEffectsSprite:scale")
tracks/13/path = NodePath("../BlobbyStateEffects:scale")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/imported = false
@ -2878,11 +2881,11 @@ tracks/13/enabled = true
tracks/13/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"update": 0,
"values": [ Vector2( 1, 1 ) ]
}
tracks/14/type = "value"
tracks/14/path = NodePath("../BlobbyEffectsSprite:offset")
tracks/14/path = NodePath("../BlobbyStateEffects:offset")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/imported = false
@ -2896,7 +2899,7 @@ tracks/14/keys = {
[sub_resource type="Animation" id=102]
resource_name = "runningLeft"
length = 0.35
length = 0.3
loop = true
step = 0.05
tracks/0/type = "value"
@ -3032,7 +3035,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:frame")
tracks/11/path = NodePath("../BlobbyStateEffects:frame")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -3044,7 +3047,7 @@ tracks/11/keys = {
"values": [ 6, 9, 9, 9, 5, 6, 7 ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/12/path = NodePath("../BlobbyStateEffects:visible")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/imported = false
@ -3056,7 +3059,7 @@ tracks/12/keys = {
"values": [ true ]
}
tracks/13/type = "value"
tracks/13/path = NodePath("../BlobbyEffectsSprite:scale")
tracks/13/path = NodePath("../BlobbyStateEffects:scale")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/imported = false
@ -3064,11 +3067,11 @@ tracks/13/enabled = true
tracks/13/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"update": 0,
"values": [ Vector2( -1, 1 ) ]
}
tracks/14/type = "value"
tracks/14/path = NodePath("../BlobbyEffectsSprite:offset")
tracks/14/path = NodePath("../BlobbyStateEffects:offset")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/imported = false
@ -3216,7 +3219,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -3365,7 +3368,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -3513,7 +3516,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -3662,7 +3665,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -3810,7 +3813,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -3959,7 +3962,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -4107,7 +4110,7 @@ tracks/10/keys = {
"values": [ Vector2( 1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -4256,7 +4259,7 @@ tracks/10/keys = {
"values": [ Vector2( -1, 1 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("../BlobbyEffectsSprite:visible")
tracks/11/path = NodePath("../BlobbyStateEffects:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/imported = false
@ -4268,6 +4271,127 @@ tracks/11/keys = {
"values": [ false ]
}
[sub_resource type="Animation" id=181]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath(".:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 9 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:offset")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, 8 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -1, 1 ) ]
}
[sub_resource type="Animation" id=182]
resource_name = "airstrafing"
length = 0.15
step = 0.025
tracks/0/type = "value"
tracks/0/path = NodePath(".:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.025, 0.05, 0.075, 0.15, 0.4 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2, 3, 9, 4 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:offset")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, 8 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 1, 1 ) ]
}
[sub_resource type="Animation" id=183]
resource_name = "airstrafingLeft"
length = 0.15
step = 0.025
tracks/0/type = "value"
tracks/0/path = NodePath(".:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.025, 0.05, 0.1, 0.15, 0.4 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2, 3, 9, 4 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath(".:offset")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 5, 8 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath(".:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -1, 1 ) ]
}
[node name="Blobby" type="KinematicBody2D" groups=["player"]]
collision_mask = 120
collision/safe_margin = 0.001
@ -4282,14 +4406,6 @@ position = Vector2( 0.0286326, -10.0053 )
scale = Vector2( 1.03, 1.04 )
shape = SubResource( 2 )
[node name="BlobbyEffectsSprite" type="Sprite" parent="."]
position = Vector2( 3.07106, -16.064 )
scale = Vector2( -1, 1 )
texture = ExtResource( 1 )
offset = Vector2( 4, 0 )
hframes = 10
frame = 8
[node name="BlobbySprite" type="Sprite" parent="."]
position = Vector2( 0, -16 )
scale = Vector2( -1, 1 )
@ -4305,6 +4421,7 @@ __meta__ = {
[node name="AnimationTree" type="AnimationTree" parent="BlobbySprite"]
tree_root = SubResource( 47 )
anim_player = NodePath("../BlobbymationPlayer")
active = true
root_motion_track = NodePath(".")
parameters/playback = SubResource( 48 )
parameters/ducking/blend_position = 1.0
@ -4316,7 +4433,7 @@ parameters/runToJump/blend_position = 1.0
parameters/running/blend_position = 1.0
parameters/turnToRun/blend_position = 1.0
parameters/walking/blend_position = 1.0
parameters/wallslideToJump/blend_position = 1.0
parameters/wallslideToJump/blend_position = -0.994131
parameters/wallsliding/blend_position = 1.0
[node name="BlobbymationPlayer" type="AnimationPlayer" parent="BlobbySprite"]
@ -4348,6 +4465,27 @@ anims/wallslideToJumpRight = SubResource( 101 )
anims/wallsliding = SubResource( 74 )
anims/wallslidingRight = SubResource( 97 )
[node name="BlobbyActionEffects" type="Sprite" parent="."]
position = Vector2( 3.07106, -16.064 )
scale = Vector2( -1, 1 )
texture = ExtResource( 1 )
offset = Vector2( 0, 8 )
hframes = 10
frame = 9
[node name="AnimationPlayer" type="AnimationPlayer" parent="BlobbyActionEffects"]
anims/RESET = SubResource( 181 )
anims/airstrafing = SubResource( 182 )
anims/airstrafingLeft = SubResource( 183 )
[node name="BlobbyStateEffects" type="Sprite" parent="."]
position = Vector2( 3.07106, -16.064 )
scale = Vector2( -1, 1 )
texture = ExtResource( 1 )
offset = Vector2( 4, 0 )
hframes = 10
frame = 8
[node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]]
position = Vector2( 0.0392303, -10.002 )
shape = SubResource( 1 )

View File

@ -62,15 +62,18 @@ func _state_logic(delta):
var direction = get_horizontal_direction()
didTurn = false
#TODO use blendspace value 0 for turn animations instead of this?
# Can you make the blendspace animation play out till end?
if direction.x < 0 && facing == 1:
didTurn = true
facing = -1
elif direction.x >= 0 && facing == -1:
elif direction.x > 0 && facing == -1:
didTurn = true
facing = 1
#TODO Yeah... deal with it
anim_tree.set("parameters/wallslideToJump/blend_position", parent.wall_touch_direction)
anim_tree.set("parameters/wallsliding/blend_position", parent.wall_touch_direction)
if didTurn:
_set_blendspaces_direction(facing)
_trigger_turn_animation()
@ -224,8 +227,6 @@ func _set_blendspaces_direction(value):
anim_tree.set("parameters/running/blend_position", value)
anim_tree.set("parameters/turnToRun/blend_position", value)
anim_tree.set("parameters/walking/blend_position", value)
anim_tree.set("parameters/wallslideToJump/blend_position", value)
anim_tree.set("parameters/wallsliding/blend_position", value)
func _trigger_turn_animation():
match self.state:

View File

@ -49,6 +49,7 @@ scale = Vector2( 0.878906, 0.936025 )
parameters/playback = SubResource( 4 )
[node name="FlyingLaserCutter" parent="." instance=ExtResource( 4 )]
visible = false
position = Vector2( 80, 80 )
rotation = 1.5708
@ -61,6 +62,6 @@ collision_use_kinematic = true
collision_layer = 8
collision_mask = 8
format = 1
tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 65536, 0, 0, 65540, 0, 0, 131072, 0, 0, 131076, 0, 0, 196608, 0, 0, 196612, 0, 0, 262144, 0, 0, 262148, 0, 0, 327680, 0, 0, 327684, 0, 0, 393216, 0, 0, 393220, 0, 0, 458752, 0, 0, 458756, 0, 0, 524288, 0, 0, 524292, 0, 0, 589824, 0, 0, 589828, 0, 0, 655360, 0, 0, 655364, 0, 0, 720896, 0, 0, 720900, 0, 0, 786432, 0, 0, 786436, 0, 0, 851968, 0, 0, 851972, 0, 0, 917504, 0, 0, 917508, 0, 0, 983040, 0, 0, 983044, 0, 0, 1048576, 0, 0, 1048577, 0, 0, 1048578, 0, 0, 1048579, 0, 0, 1048580, 0, 0 )
tile_data = PoolIntArray( 655360, 0, 0, 655361, 0, 0, 655362, 0, 0, 655363, 0, 0, 655364, 0, 0, 655365, 0, 0, 655366, 0, 0, 655367, 0, 0, 655368, 0, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 0, 0, 655373, 0, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0, 655379, 0, 0, 655380, 0, 0, 655381, 0, 0, 655382, 0, 0, 655383, 0, 0, 655384, 0, 0, 655385, 0, 0, 655386, 0, 0, 655387, 0, 0, 655388, 0, 0, 720896, 0, 0, 720924, 0, 0, 786432, 0, 0, 786460, 0, 0, 851968, 0, 0, 851996, 0, 0, 917504, 0, 0, 917532, 0, 0, 983040, 0, 0, 983068, 0, 0, 1048576, 0, 0, 1048577, 0, 0, 1048578, 0, 0, 1048579, 0, 0, 1048580, 0, 0, 1048581, 0, 0, 1048582, 0, 0, 1048583, 0, 0, 1048584, 0, 0, 1048585, 0, 0, 1048586, 0, 0, 1048587, 0, 0, 1048588, 0, 0, 1048589, 0, 0, 1048590, 0, 0, 1048591, 0, 0, 1048592, 0, 0, 1048593, 0, 0, 1048594, 0, 0, 1048595, 0, 0, 1048596, 0, 0, 1048597, 0, 0, 1048598, 0, 0, 1048599, 0, 0, 1048600, 0, 0, 1048601, 0, 0, 1048602, 0, 0, 1048603, 0, 0, 1048604, 0, 0 )
[editable path="Blobby"]