🍻 Animated the wings

main
Ervan Lefevre 2 years ago
parent 6d50f50403
commit 838fd204a5
  1. 12
      nodes/player/player.gd
  2. 362
      nodes/player/player.tscn

@ -7,6 +7,7 @@ class_name Player
@onready var sound_player = $sound_player
@onready var gliding_player = $gliding_player
@onready var animator = $animator
@onready var wings_animator = $wings_animator
@onready var body = $oriented_container/body
@onready var grab_ray = get_node('oriented_container/body/grab_ray')
@onready var sprite = get_node('oriented_container/body')
@ -63,6 +64,7 @@ var gravity = WORLD_GRAVITY
var grabbed_obstacle = null
func _ready():
wings_animator.speed_scale = 0
$fsm.set_states(STATES)
add_to_group("player")
g_game_state.restore_checkpoint.connect(on_restore_checkpoint)
@ -173,8 +175,10 @@ func after_state(delta):
func handle_glide():
if Input.is_action_just_pressed('player_jump'):
gliding_player.play_sound(SOUNDS["gliding"])
wings_animator.speed_scale = 1
if Input.is_action_just_released('player_jump'):
gliding_player.stop_sound()
wings_animator.speed_scale = 0
func handle_gravity(delta):
var gravity_delta = gravity
@ -224,18 +228,22 @@ func handle_sprite_orientation():
if is_wall_right && velocity.y > 0:
body.look_down_on_right_wall()
wings_animator.play('wing_left')
put_grabbed_object_at(Vector2(0, 35))
if is_wall_right && velocity.y < 0:
body.look_up_on_right_wall()
wings_animator.play('wing_right')
put_grabbed_object_at(Vector2(0, -35))
if !is_wall_right && velocity.y > 0:
body.look_down_on_left_wall()
wings_animator.play('wing_right')
put_grabbed_object_at(Vector2(0, 35))
if !is_wall_right && velocity.y < 0:
body.look_up_on_left_wall()
wings_animator.play('wing_left')
put_grabbed_object_at(Vector2(0, -35))
@ -243,17 +251,21 @@ func handle_sprite_orientation():
if velocity.x != 0:
if velocity.x > 0:
body.look_right_on_ceiling()
wings_animator.play('wing_left')
put_grabbed_object_at(Vector2(35, 0))
else:
body.look_left_on_ceiling()
wings_animator.play('wing_right')
put_grabbed_object_at(Vector2(-35, 0))
else:
if velocity.x != 0:
if velocity.x > 0:
body.look_right()
wings_animator.play('wing_right')
put_grabbed_object_at(Vector2(35, 0))
else:
body.look_left()
wings_animator.play('wing_left')
put_grabbed_object_at(Vector2(-35, 0))
func put_grabbed_object_at(at):

@ -1,4 +1,4 @@
[gd_scene load_steps=25 format=3 uid="uid://c5rmt3jeffjx7"]
[gd_scene load_steps=27 format=3 uid="uid://c5rmt3jeffjx7"]
[ext_resource type="Script" path="res://nodes/player/player.gd" id="1_exx2i"]
[ext_resource type="Texture2D" uid="uid://cm4rn4vgyjd1b" path="res://nodes/player/temp.png" id="1_s33dc"]
@ -885,6 +885,306 @@ tracks/0/keys = {
"update": 0,
"values": [Vector2(0.2, 0.2)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("oriented_container/body/wing_1:offset")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(38, -4)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("oriented_container/body/wing_1:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [3.48787e-16]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("oriented_container/body/wing_2:offset")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-38.4698, -3.39681)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("oriented_container/body/wing_2:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0830452]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("oriented_container/body/wing_1:flip_h")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("oriented_container/body/wing_1:position")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-64, -10)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("oriented_container/body/wing_2:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(12, -10)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("oriented_container/body/wing_2:flip_h")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_dv4pa"]
resource_name = "wing_right"
length = 0.05
loop_mode = 1
step = 0.0025
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("oriented_container/body/wing_1:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-35.8716, -4.1675)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("oriented_container/body/wing_1:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.0225, 0.04),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [3.48787e-16, 0.375246, -0.375246]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("oriented_container/body/wing_2:offset")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-26.1007, 0.283716)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("oriented_container/body/wing_2:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.0225, 0.04),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [0.0830452, -0.366519, -0.366519]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("oriented_container/body/wing_1:flip_h")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("oriented_container/body/wing_1:position")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(12, -8)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("oriented_container/body/wing_2:position")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(11.109, -10.8932)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("oriented_container/body/wing_2:flip_h")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_rie51"]
resource_name = "wing_left"
length = 0.05
loop_mode = 1
step = 0.0025
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("oriented_container/body/wing_1:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(38, -4)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("oriented_container/body/wing_1:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.0225, 0.04),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [3.48787e-16, 0.375246, -0.375246]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("oriented_container/body/wing_2:offset")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(36.7168, -5.84125)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("oriented_container/body/wing_2:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.0225, 0.04),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [0.0830452, -0.366519, -0.366519]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("oriented_container/body/wing_1:flip_h")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("oriented_container/body/wing_1:position")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-20, -14)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("oriented_container/body/wing_2:flip_h")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("oriented_container/body/wing_2:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-20, -12)]
}
[sub_resource type="Animation" id="Animation_gwu4b"]
resource_name = "zoom_in"
@ -901,10 +1201,29 @@ tracks/0/keys = {
"update": 0,
"values": [Vector2(0.2, 0.2), Vector2(0.2, 0.2), Vector2(5, 5)]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("fsm")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [false],
"method": &"set_physics_process"
}, {
"args": [true],
"method": &"set_physics_process"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_t0d07"]
_data = {
"RESET": SubResource("Animation_kwmth"),
"wing_left": SubResource("Animation_rie51"),
"wing_right": SubResource("Animation_dv4pa"),
"zoom_in": SubResource("Animation_gwu4b")
}
@ -1068,7 +1387,7 @@ tracks/12/keys = {
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/enabled = false
tracks/13/path = NodePath("oriented_container/body/wing_1:flip_h")
tracks/13/interp = 1
tracks/13/loop_wrap = true
@ -1080,7 +1399,7 @@ tracks/13/keys = {
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/enabled = false
tracks/14/path = NodePath("oriented_container/body/wing_1:position")
tracks/14/interp = 1
tracks/14/loop_wrap = true
@ -1092,7 +1411,7 @@ tracks/14/keys = {
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/enabled = false
tracks/15/path = NodePath("oriented_container/body/wing_2:flip_h")
tracks/15/interp = 1
tracks/15/loop_wrap = true
@ -1104,7 +1423,7 @@ tracks/15/keys = {
}
tracks/16/type = "value"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/enabled = false
tracks/16/path = NodePath("oriented_container/body/wing_2:position")
tracks/16/interp = 1
tracks/16/loop_wrap = true
@ -1307,7 +1626,7 @@ tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(24, -6)]
"values": [Vector2(14, -10)]
}
tracks/15/type = "value"
tracks/15/imported = false
@ -1345,6 +1664,18 @@ tracks/17/keys = {
"update": 0,
"values": [0.0]
}
tracks/18/type = "value"
tracks/18/imported = false
tracks/18/enabled = true
tracks/18/path = NodePath("oriented_container/body/wing_1:offset")
tracks/18/interp = 1
tracks/18/loop_wrap = true
tracks/18/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-38.2046, -3.8798)]
}
[sub_resource type="Animation" id="Animation_ba4v1"]
resource_name = "right"
@ -1506,7 +1837,7 @@ tracks/12/keys = {
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/enabled = false
tracks/13/path = NodePath("oriented_container/body/wing_1:flip_h")
tracks/13/interp = 1
tracks/13/loop_wrap = true
@ -1518,7 +1849,7 @@ tracks/13/keys = {
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/enabled = false
tracks/14/path = NodePath("oriented_container/body/wing_1:position")
tracks/14/interp = 1
tracks/14/loop_wrap = true
@ -1530,7 +1861,7 @@ tracks/14/keys = {
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/enabled = false
tracks/15/path = NodePath("oriented_container/body/wing_2:flip_h")
tracks/15/interp = 1
tracks/15/loop_wrap = true
@ -1542,7 +1873,7 @@ tracks/15/keys = {
}
tracks/16/type = "value"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/enabled = false
tracks/16/path = NodePath("oriented_container/body/wing_2:position")
tracks/16/interp = 1
tracks/16/loop_wrap = true
@ -1637,16 +1968,16 @@ texture = ExtResource("4_cqlnm")
offset = Vector2(-8, 12)
[node name="wing_1" type="Sprite2D" parent="oriented_container/body"]
position = Vector2(24, -6)
position = Vector2(14, -10)
texture = ExtResource("5_a0305")
offset = Vector2(-38, -4)
offset = Vector2(-38.2046, -3.8798)
[node name="wing_2" type="Sprite2D" parent="oriented_container/body"]
show_behind_parent = true
position = Vector2(24, -6)
rotation = 0.0830452
texture = ExtResource("5_a0305")
offset = Vector2(-38, -4)
offset = Vector2(-38.4698, -3.39681)
[node name="grab_ray" type="RayCast2D" parent="oriented_container/body"]
position = Vector2(-4.1633e-12, -4.1633e-12)
@ -1664,6 +1995,11 @@ libraries = {
"": SubResource("AnimationLibrary_t0d07")
}
[node name="wings_animator" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_t0d07")
}
[node name="sound_player" type="AudioStreamPlayer2D" parent="."]
script = ExtResource("4_jraxp")

Loading…
Cancel
Save