Tutorials completed.
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
extends KinematicBody2D
|
||||
|
||||
const PlayerHurtSound = preload("res://Player/PlayerHurtSound.tscn")
|
||||
|
||||
var velocity = Vector2.ZERO
|
||||
var input_vector = Vector2.ZERO
|
||||
var roll_vector = Vector2.DOWN
|
||||
@ -19,6 +21,7 @@ enum {
|
||||
var state = MOVE
|
||||
|
||||
onready var animationPlayer = $AnimationPlayer
|
||||
onready var blinkAnimationPlayer = $BlinkAnimationPlayer
|
||||
onready var animationTree = $AnimationTree
|
||||
onready var animationState = animationTree.get("parameters/playback")
|
||||
onready var swordHitbox = $HitboxPivot/SwordHitbox
|
||||
@ -28,6 +31,7 @@ func _ready():
|
||||
stats.connect("no_health", self, "queue_free")
|
||||
animationTree.active = true
|
||||
swordHitbox.knockback_vector = roll_vector
|
||||
blinkAnimationPlayer.play("Stop")
|
||||
|
||||
func _process(delta):
|
||||
match state:
|
||||
@ -35,10 +39,10 @@ func _process(delta):
|
||||
move_state(delta)
|
||||
|
||||
ROLL:
|
||||
roll_state(delta)
|
||||
roll_state()
|
||||
|
||||
ATTACK:
|
||||
attack_state(delta)
|
||||
attack_state()
|
||||
|
||||
func move_state(delta):
|
||||
input_vector.x = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
|
||||
@ -71,12 +75,12 @@ func move_state(delta):
|
||||
func roll_animation_finished():
|
||||
state = MOVE
|
||||
|
||||
func roll_state(delta):
|
||||
func roll_state():
|
||||
velocity = roll_vector * ROLL_SPEED
|
||||
animationState.travel("Roll")
|
||||
move()
|
||||
|
||||
func attack_state(delta):
|
||||
func attack_state():
|
||||
#velocity = Vector2.ZERO
|
||||
#animationTree.set("parameters/Attack/blend_position", input_vector)
|
||||
velocity = Vector2.ZERO
|
||||
@ -95,7 +99,17 @@ func attack_aninimation_finished():
|
||||
# pass
|
||||
|
||||
|
||||
func _on_Hurtbox_area_entered(area):
|
||||
func _on_Hurtbox_area_entered(_area):
|
||||
stats.health -= 1
|
||||
hurtBox.start_invincibility(0.5)
|
||||
hurtBox.start_invincibility(0.6)
|
||||
hurtBox.create_hit_effect()
|
||||
var playerHurtSounds = PlayerHurtSound.instance()
|
||||
get_tree().current_scene.add_child(playerHurtSounds)
|
||||
|
||||
|
||||
func _on_Hurtbox_invincibility_started():
|
||||
blinkAnimationPlayer.play("Start")
|
||||
|
||||
|
||||
func _on_Hurtbox_invincibility_ended():
|
||||
blinkAnimationPlayer.play("Stop")
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=57 format=2]
|
||||
[gd_scene load_steps=64 format=2]
|
||||
|
||||
[ext_resource path="res://Player/Player.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Player/Player.png" type="Texture" id=2]
|
||||
@ -6,6 +6,13 @@
|
||||
[ext_resource path="res://Player/SwordHitbox.gd" type="Script" id=4]
|
||||
[ext_resource path="res://Overlap/Hurtbox.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://Shadows/MediumShadow.png" type="Texture" id=6]
|
||||
[ext_resource path="res://Music and Sounds/Swipe.wav" type="AudioStream" id=7]
|
||||
[ext_resource path="res://Music and Sounds/Evade.wav" type="AudioStream" id=8]
|
||||
[ext_resource path="res://WhiteColor_shader.tres" type="Shader" id=9]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id=55]
|
||||
shader = ExtResource( 9 )
|
||||
shader_param/active = true
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 4.0
|
||||
@ -64,6 +71,24 @@ tracks/3/keys = {
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
}
|
||||
tracks/4/type = "audio"
|
||||
tracks/4/path = NodePath("AudioStreamPlayer")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": null
|
||||
}, {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 7 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1, 0.101 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=28]
|
||||
resource_name = "AttackLeft"
|
||||
@ -118,6 +143,24 @@ tracks/3/keys = {
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
}
|
||||
tracks/4/type = "audio"
|
||||
tracks/4/path = NodePath("AudioStreamPlayer")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": null
|
||||
}, {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 7 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1, 0.101 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=29]
|
||||
resource_name = "AttackRight"
|
||||
@ -172,6 +215,24 @@ tracks/3/keys = {
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
}
|
||||
tracks/4/type = "audio"
|
||||
tracks/4/path = NodePath("AudioStreamPlayer")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": null
|
||||
}, {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 7 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1, 0.101 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=30]
|
||||
resource_name = "AttackUp"
|
||||
@ -226,6 +287,24 @@ tracks/3/keys = {
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
}
|
||||
tracks/4/type = "audio"
|
||||
tracks/4/path = NodePath("AudioStreamPlayer")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": null
|
||||
}, {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 7 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1, 0.101 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=9]
|
||||
resource_name = "IdleDown"
|
||||
@ -351,6 +430,24 @@ tracks/1/keys = {
|
||||
"method": "roll_animation_finished"
|
||||
} ]
|
||||
}
|
||||
tracks/2/type = "audio"
|
||||
tracks/2/path = NodePath("AudioStreamPlayer")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": null
|
||||
}, {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 8 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1, 0.101 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=43]
|
||||
resource_name = "RollLeft"
|
||||
@ -381,6 +478,24 @@ tracks/1/keys = {
|
||||
"method": "roll_animation_finished"
|
||||
} ]
|
||||
}
|
||||
tracks/2/type = "audio"
|
||||
tracks/2/path = NodePath("AudioStreamPlayer")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": null
|
||||
}, {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 8 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1, 0.101 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=42]
|
||||
resource_name = "RollRight"
|
||||
@ -411,6 +526,20 @@ tracks/1/keys = {
|
||||
"method": "roll_animation_finished"
|
||||
} ]
|
||||
}
|
||||
tracks/2/type = "audio"
|
||||
tracks/2/path = NodePath("AudioStreamPlayer")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 8 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=44]
|
||||
resource_name = "RollUp"
|
||||
@ -441,10 +570,29 @@ tracks/1/keys = {
|
||||
"method": "roll_animation_finished"
|
||||
} ]
|
||||
}
|
||||
tracks/2/type = "audio"
|
||||
tracks/2/path = NodePath("AudioStreamPlayer")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"clips": [ {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": null
|
||||
}, {
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource( 8 )
|
||||
} ],
|
||||
"times": PoolRealArray( 0.1, 0.101 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "RunDown"
|
||||
length = 0.6
|
||||
loop = true
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
@ -647,6 +795,54 @@ height = 12.0
|
||||
radius = 5.0
|
||||
height = 6.0
|
||||
|
||||
[sub_resource type="Animation" id=56]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:material:shader_param/active")
|
||||
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": [ true ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=53]
|
||||
resource_name = "Start"
|
||||
length = 0.2
|
||||
loop = true
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:material:shader_param/active")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ true, false ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=54]
|
||||
resource_name = "Stop"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:material:shader_param/active")
|
||||
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": 1,
|
||||
"values": [ false ]
|
||||
}
|
||||
|
||||
[node name="Player" type="KinematicBody2D"]
|
||||
collision_layer = 2
|
||||
script = ExtResource( 1 )
|
||||
@ -656,6 +852,7 @@ position = Vector2( 0, 1 )
|
||||
texture = ExtResource( 6 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
material = SubResource( 55 )
|
||||
position = Vector2( 0, -9 )
|
||||
texture = ExtResource( 2 )
|
||||
hframes = 60
|
||||
@ -694,7 +891,7 @@ parameters/Run/blend_position = Vector2( 0, 1 )
|
||||
|
||||
[node name="HitboxPivot" type="Position2D" parent="."]
|
||||
position = Vector2( 0, -4 )
|
||||
rotation = 1.5708
|
||||
rotation = 4.71239
|
||||
__meta__ = {
|
||||
"_gizmo_extents_": 8.0
|
||||
}
|
||||
@ -715,7 +912,17 @@ collision_layer = 4
|
||||
position = Vector2( 0, -4 )
|
||||
shape = SubResource( 52 )
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 8 )
|
||||
|
||||
[node name="BlinkAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/RESET = SubResource( 56 )
|
||||
anims/Start = SubResource( 53 )
|
||||
anims/Stop = SubResource( 54 )
|
||||
|
||||
[connection signal="area_entered" from="Hurtbox" to="." method="_on_Hurtbox_area_entered"]
|
||||
[connection signal="invincibility_ended" from="Hurtbox" to="." method="_on_Hurtbox_invincibility_ended"]
|
||||
[connection signal="invincibility_started" from="Hurtbox" to="." method="_on_Hurtbox_invincibility_started"]
|
||||
|
||||
[editable path="HitboxPivot/SwordHitbox"]
|
||||
[editable path="Hurtbox"]
|
||||
|
16
ActionRPG-HeartBeast/Player/PlayerHurtSound.gd
Normal file
16
ActionRPG-HeartBeast/Player/PlayerHurtSound.gd
Normal file
@ -0,0 +1,16 @@
|
||||
extends AudioStreamPlayer
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
connect("finished", self, "queue_free")
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
9
ActionRPG-HeartBeast/Player/PlayerHurtSound.tscn
Normal file
9
ActionRPG-HeartBeast/Player/PlayerHurtSound.tscn
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://Music and Sounds/Hurt.wav" type="AudioStream" id=1]
|
||||
[ext_resource path="res://Player/PlayerHurtSound.gd" type="Script" id=2]
|
||||
|
||||
[node name="PlayerHurtSound" type="AudioStreamPlayer"]
|
||||
stream = ExtResource( 1 )
|
||||
autoplay = true
|
||||
script = ExtResource( 2 )
|
Reference in New Issue
Block a user