prout: nuage de particules quand on pète!

Voici la fontionalité tant attendue et merveilleuse! Le prout de
princesse. Mesdammes et messieurs vous n'allez pas en croire vos
narines ni vos panflet pantouflés. La princesse en plus de son retour
haptique à base de vibreur dans la manette vous offre également une
prestation graphique des plus prestigieuse, à savoir, des particules! Et
oui vous avez bien lu! Vous chez public singulier qui passe trop de
temps à lires les messages de commits. La princesse vous communique la
durée et la direction des dash proutés grâce à cette belle trainée
verdâtre. Vous m'en direz des nouvelles!
This commit is contained in:
Thomas Lavocat
2023-10-13 21:06:07 +02:00
parent 0b8a459fc0
commit ec7c28fda9
6 changed files with 124 additions and 2 deletions

BIN
masks/smoke_particle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c66jnmv1vefmo"
path="res://.godot/imported/smoke_particle.png-2ef7baf5e0798208c8e39646e1fd8e10.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://masks/smoke_particle.png"
dest_files=["res://.godot/imported/smoke_particle.png-2ef7baf5e0798208c8e39646e1fd8e10.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
masks/smoke_particle_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bl4eehh16yo0r"
path="res://.godot/imported/smoke_particle_16.png-90c44d6bff680644df9c0fd938a657ae.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://masks/smoke_particle_16.png"
dest_files=["res://.godot/imported/smoke_particle_16.png-90c44d6bff680644df9c0fd938a657ae.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -24,6 +24,8 @@ var gravity: int = ProjectSettings.get("physics/2d/default_gravity")
@onready var camera := $Camera2D as Camera2D
@onready var death_animation := $"Death player" as AnimationPlayer
@onready var nuage_prout := $"GPUParticles2D" as GPUParticles2D
################################################################################
#
# Constantes de déplacement à pimper dans l'inspecteur
@@ -362,6 +364,7 @@ func dash() -> void:
func cancel_dash() -> void:
dash_step = -1
dashing=false
nuage_prout.emitting = false
func choose_animation_orientation() -> void:
# Oriente l'animation correctement en fonction de laquelle on joue et de
@@ -528,6 +531,7 @@ func read_input() -> void:
Input.start_joy_vibration(0, 1, 0.5, 0.2)
available_dashs -=1
dashing = true
nuage_prout.emitting = true
dash_fart.emit()
# Limiter le dash en diagonnale car sinon il est trop grand
# par rapport à un dash dans une seule direction

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=63 format=3 uid="uid://dv0mokf4eogm7"]
[gd_scene load_steps=71 format=3 uid="uid://dv0mokf4eogm7"]
[ext_resource type="Script" path="res://princesse.gd" id="1_dkp7s"]
[ext_resource type="Texture2D" uid="uid://dr7fyh2rufsyj" path="res://sprite/princess_falling_direction.png" id="2_hholp"]
[ext_resource type="Texture2D" uid="uid://bl4eehh16yo0r" path="res://masks/smoke_particle_16.png" id="2_jyxmd"]
[ext_resource type="Texture2D" uid="uid://cc2vjgg2dw27g" path="res://sprite/princess_falling.png" id="3_kbaya"]
[ext_resource type="Texture2D" uid="uid://bwod37xemy88x" path="res://sprite/princess.png" id="4_iiu2b"]
[ext_resource type="Texture2D" uid="uid://cx58dasu8epvx" path="res://sprite/princess_idle.png" id="4_uydsc"]
@@ -10,6 +11,43 @@
[ext_resource type="Texture2D" uid="uid://d23lmsjrjw1mk" path="res://sprite/princess_wall_stick.png" id="7_8dix4"]
[ext_resource type="Texture2D" uid="uid://dgsn3ixn46anc" path="res://sprite/light.png" id="8_8c83t"]
[sub_resource type="Gradient" id="Gradient_anx4x"]
[sub_resource type="GradientTexture1D" id="GradientTexture1D_7kmv1"]
gradient = SubResource("Gradient_anx4x")
[sub_resource type="Curve" id="Curve_iu7sd"]
min_value = -1.0
_data = [Vector2(0, -1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_jwai0"]
curve = SubResource("Curve_iu7sd")
[sub_resource type="Curve" id="Curve_igy3q"]
_data = [Vector2(0.0365535, 0), 0.0, 0.0, 0, 0, Vector2(0.503916, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.852761), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_b7sj0"]
curve = SubResource("Curve_igy3q")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_n8y3m"]
emission_shape = 1
emission_sphere_radius = 4.82
particle_flag_disable_z = true
orbit_velocity_min = 0.0
orbit_velocity_max = 0.0
radial_accel_min = 15.0
radial_accel_max = 15.0
angle_max = 360.0
scale_curve = SubResource("CurveTexture_b7sj0")
color = Color(0.360784, 0.741176, 0.458824, 1)
color_ramp = SubResource("GradientTexture1D_7kmv1")
hue_variation_curve = SubResource("CurveTexture_jwai0")
collision_mode = 1
collision_friction = 0.0
collision_bounce = 0.0
[sub_resource type="AtlasTexture" id="AtlasTexture_i248f"]
atlas = ExtResource("2_hholp")
region = Rect2(0, 0, 24, 50)
@@ -436,6 +474,18 @@ COYOTE_LENGTH = 7
COYOTE_GRAB_LENGTH = 20
WALK_INCR_AIR = 4
[node name="GPUParticles2D" type="GPUParticles2D" parent="."]
texture_filter = 4
position = Vector2(-3.33334, 10)
scale = Vector2(0.5, 0.5)
emitting = false
amount = 100
process_material = SubResource("ParticleProcessMaterial_n8y3m")
texture = ExtResource("2_jyxmd")
lifetime = 2.0
preprocess = 2.0
speed_scale = 4.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
modulate = Color(0.823529, 0.823529, 0.823529, 1)
sprite_frames = SubResource("SpriteFrames_q52wx")
@@ -476,7 +526,7 @@ texture = SubResource("GradientTexture2D_t1uxd")
texture_scale = 1.85
[node name="light" type="PointLight2D" parent="."]
position = Vector2(0, 1.66669)
position = Vector2(-1.66667, -1.66667)
color = Color(1, 0.964706, 0.643137, 0.6)
energy = 0.32
shadow_enabled = true