Better dash animation (celeste style)
This commit is contained in:
parent
7e2c93104b
commit
5884c3294e
8 changed files with 155 additions and 43 deletions
BIN
assets/Player/herochar_dash_partical.png
Normal file
BIN
assets/Player/herochar_dash_partical.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
34
assets/Player/herochar_dash_partical.png.import
Normal file
34
assets/Player/herochar_dash_partical.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/herochar_dash_partical.png-69b8bf33921f19c267db47aa0649ff68.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/Player/herochar_dash_partical.png"
|
||||||
|
dest_files=[ "res://.import/herochar_dash_partical.png-69b8bf33921f19c267db47aa0649ff68.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
assets/Player/herochar_dash_partical_left.png
Normal file
BIN
assets/Player/herochar_dash_partical_left.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
34
assets/Player/herochar_dash_partical_left.png.import
Normal file
34
assets/Player/herochar_dash_partical_left.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/herochar_dash_partical_left.png-35044098d95eb6a11a6988bd3f3a5228.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/Player/herochar_dash_partical_left.png"
|
||||||
|
dest_files=[ "res://.import/herochar_dash_partical_left.png-35044098d95eb6a11a6988bd3f3a5228.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
37
src/Actors/DashParticles_left.tscn
Normal file
37
src/Actors/DashParticles_left.tscn
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://assets/Player/herochar_dash_partical_left.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id=1]
|
||||||
|
colors = PoolColorArray( 0, 1, 1, 0.694118, 0.862745, 0.866667, 0.901961, 0 )
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture" id=2]
|
||||||
|
gradient = SubResource( 1 )
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id=3]
|
||||||
|
_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.475 ), 0.0, 0.0, 0, 0 ]
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id=4]
|
||||||
|
curve = SubResource( 3 )
|
||||||
|
|
||||||
|
[sub_resource type="ParticlesMaterial" id=5]
|
||||||
|
flag_disable_z = true
|
||||||
|
direction = Vector3( 0, 0, 0 )
|
||||||
|
spread = 0.0
|
||||||
|
gravity = Vector3( 0, 0, 0 )
|
||||||
|
initial_velocity = 10.0
|
||||||
|
orbit_velocity = 0.0
|
||||||
|
orbit_velocity_random = 0.0
|
||||||
|
scale_curve = SubResource( 4 )
|
||||||
|
color_ramp = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="DashParticlesLeft" type="Particles2D"]
|
||||||
|
show_behind_parent = true
|
||||||
|
position = Vector2( -0.184715, -8.0756 )
|
||||||
|
emitting = false
|
||||||
|
amount = 15
|
||||||
|
lifetime = 0.8
|
||||||
|
speed_scale = 3.0
|
||||||
|
local_coords = false
|
||||||
|
process_material = SubResource( 5 )
|
||||||
|
texture = ExtResource( 1 )
|
37
src/Actors/DashParticles_right.tscn
Normal file
37
src/Actors/DashParticles_right.tscn
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://assets/Player/herochar_dash_partical.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id=1]
|
||||||
|
colors = PoolColorArray( 0, 1, 1, 0.694118, 0.862745, 0.866667, 0.901961, 0 )
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture" id=2]
|
||||||
|
gradient = SubResource( 1 )
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id=3]
|
||||||
|
_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.475 ), 0.0, 0.0, 0, 0 ]
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id=4]
|
||||||
|
curve = SubResource( 3 )
|
||||||
|
|
||||||
|
[sub_resource type="ParticlesMaterial" id=5]
|
||||||
|
flag_disable_z = true
|
||||||
|
direction = Vector3( 0, 0, 0 )
|
||||||
|
spread = 0.0
|
||||||
|
gravity = Vector3( 0, 0, 0 )
|
||||||
|
initial_velocity = 10.0
|
||||||
|
orbit_velocity = 0.0
|
||||||
|
orbit_velocity_random = 0.0
|
||||||
|
scale_curve = SubResource( 4 )
|
||||||
|
color_ramp = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="DashParticlesRight" type="Particles2D"]
|
||||||
|
show_behind_parent = true
|
||||||
|
position = Vector2( -0.184715, -8.0756 )
|
||||||
|
emitting = false
|
||||||
|
amount = 15
|
||||||
|
lifetime = 0.8
|
||||||
|
speed_scale = 3.0
|
||||||
|
local_coords = false
|
||||||
|
process_material = SubResource( 5 )
|
||||||
|
texture = ExtResource( 1 )
|
|
@ -94,12 +94,10 @@ func calculate_move_velocity(direction:Vector2, is_jump_canceled:bool, delta:fl
|
||||||
output = dash_velocity
|
output = dash_velocity
|
||||||
_can_dash = false
|
_can_dash = false
|
||||||
_is_dashing = true # turn off gravity while dashing
|
_is_dashing = true # turn off gravity while dashing
|
||||||
$DashParticles.emitting = true
|
if dash_velocity.x < 0 :
|
||||||
$DashParticles.position = Vector2(
|
$DashParticlesLeft.emitting = true;
|
||||||
position.x,
|
else:
|
||||||
position.y - 8
|
$DashParticlesRight.emitting = true
|
||||||
)
|
|
||||||
$DashParticles.set_as_toplevel(true)
|
|
||||||
$DashTimeout.start()
|
$DashTimeout.start()
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
|
@ -143,7 +141,8 @@ func die():
|
||||||
$AnimationPlayer.play("die")
|
$AnimationPlayer.play("die")
|
||||||
|
|
||||||
func _on_DashTimeout_timeout() -> void:
|
func _on_DashTimeout_timeout() -> void:
|
||||||
$DashParticles.emitting = false
|
$DashParticlesLeft.emitting = false
|
||||||
|
$DashParticlesRight.emitting = false
|
||||||
_velocity.x = run_speed * _velocity.normalized().x;
|
_velocity.x = run_speed * _velocity.normalized().x;
|
||||||
_is_dashing = false
|
_is_dashing = false
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
[gd_scene load_steps=18 format=2]
|
[gd_scene load_steps=15 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://src/Actors/DashParticles_right.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://src/Actors/Player.gd" type="Script" id=2]
|
[ext_resource path="res://src/Actors/Player.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://src/Actors/DashParticles_left.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://assets/Items/torch_ligt_texture.png" type="Texture" id=7]
|
[ext_resource path="res://assets/Items/torch_ligt_texture.png" type="Texture" id=7]
|
||||||
[ext_resource path="res://assets/Player/herochar_spritesheet.png" type="Texture" id=8]
|
[ext_resource path="res://assets/Player/herochar_spritesheet.png" type="Texture" id=8]
|
||||||
|
|
||||||
|
@ -264,32 +266,6 @@ tracks/1/keys = {
|
||||||
"values": [ Color( 0, 0, 0, 0 ) ]
|
"values": [ Color( 0, 0, 0, 0 ) ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Gradient" id=10]
|
|
||||||
offsets = PoolRealArray( 0, 0.668103, 1 )
|
|
||||||
colors = PoolColorArray( 0.6, 0.713726, 1, 1, 0, 0.12549, 0.380392, 0.760784, 1, 1, 1, 0 )
|
|
||||||
|
|
||||||
[sub_resource type="GradientTexture" id=11]
|
|
||||||
gradient = SubResource( 10 )
|
|
||||||
|
|
||||||
[sub_resource type="Curve" id=12]
|
|
||||||
max_value = 2.0
|
|
||||||
_data = [ Vector2( 0, 2 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.0835871 ), 0.0, 0.0, 0, 0 ]
|
|
||||||
|
|
||||||
[sub_resource type="CurveTexture" id=13]
|
|
||||||
curve = SubResource( 12 )
|
|
||||||
|
|
||||||
[sub_resource type="ParticlesMaterial" id=14]
|
|
||||||
trail_size_modifier = SubResource( 13 )
|
|
||||||
trail_color_modifier = SubResource( 11 )
|
|
||||||
emission_shape = 2
|
|
||||||
emission_box_extents = Vector3( 20, 4, 1 )
|
|
||||||
flag_disable_z = true
|
|
||||||
gravity = Vector3( 0, 200, 0 )
|
|
||||||
initial_velocity_random = 0.11
|
|
||||||
orbit_velocity = 0.0
|
|
||||||
orbit_velocity_random = 0.0
|
|
||||||
linear_accel = 1.48
|
|
||||||
|
|
||||||
[node name="Player" type="KinematicBody2D"]
|
[node name="Player" type="KinematicBody2D"]
|
||||||
collision_mask = 30
|
collision_mask = 30
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -316,7 +292,7 @@ position = Vector2( 0, -8 )
|
||||||
texture = ExtResource( 8 )
|
texture = ExtResource( 8 )
|
||||||
vframes = 13
|
vframes = 13
|
||||||
hframes = 8
|
hframes = 8
|
||||||
frame = 45
|
frame = 48
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
autoplay = "idle"
|
autoplay = "idle"
|
||||||
|
@ -344,12 +320,7 @@ __meta__ = {
|
||||||
wait_time = 0.1
|
wait_time = 0.1
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
[node name="DashParticles" type="Particles2D" parent="."]
|
[node name="DashParticlesLeft" parent="." instance=ExtResource( 3 )]
|
||||||
position = Vector2( 0, -7 )
|
|
||||||
emitting = false
|
[node name="DashParticlesRight" parent="." instance=ExtResource( 1 )]
|
||||||
amount = 30
|
|
||||||
lifetime = 0.2
|
|
||||||
one_shot = true
|
|
||||||
explosiveness = 0.5
|
|
||||||
process_material = SubResource( 14 )
|
|
||||||
[connection signal="timeout" from="DashTimeout" to="." method="_on_DashTimeout_timeout"]
|
[connection signal="timeout" from="DashTimeout" to="." method="_on_DashTimeout_timeout"]
|
||||||
|
|
Loading…
Reference in a new issue