diff --git a/Packed-Scenes/explosion.tscn b/Packed-Scenes/explosion.tscn index 5348f98..4c6cea3 100644 --- a/Packed-Scenes/explosion.tscn +++ b/Packed-Scenes/explosion.tscn @@ -20,12 +20,12 @@ curve = SubResource("Curve_43f32") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ssaw8"] emission_shape = 1 emission_sphere_radius = 1.0 -radial_velocity_min = 1.0 -radial_velocity_max = 2.0 +radial_velocity_min = 0.5 +radial_velocity_max = 1.0 radial_velocity_curve = SubResource("CurveTexture_xp5x6") gravity = Vector3(0, 0, 0) scale_min = 0.01 -scale_max = 0.04 +scale_max = 0.02 scale_curve = SubResource("CurveTexture_s7b1r") turbulence_noise_strength = 0.5 turbulence_influence_max = 0.2 @@ -54,13 +54,12 @@ curve = SubResource("Curve_w41ea") [node name="Explosion" type="GPUParticles3D"] emitting = false -amount = 100 +amount = 250 sub_emitter = NodePath(".") -lifetime = 2.0 one_shot = true explosiveness = 1.0 trail_enabled = true -trail_lifetime = 1.0 +trail_lifetime = 0.5 process_material = SubResource("ParticleProcessMaterial_ssaw8") draw_passes = 2 draw_pass_1 = ExtResource("1_6sgsn") diff --git a/Scripts/Asteroid.cs b/Scripts/Asteroid.cs index a0b1471..1b5c38a 100644 --- a/Scripts/Asteroid.cs +++ b/Scripts/Asteroid.cs @@ -35,21 +35,22 @@ public partial class Asteroid : Node3D { KinematicCollision3D collision = asteroidRb.MoveAndCollide(new(0, 0, speed * (float)delta)); if (collision?.GetCollider() is Node3D collider) { GD.Print($"{Name} collides with {collider.GetParentNode3D().Name}"); - if (collider is Asteroid asteroid) asteroid.Explode(); - Explode(); + Vector3 collisionPosition = collision.GetPosition(); + if (collider is Asteroid asteroid) asteroid.Explode(collisionPosition); + Explode(collisionPosition); } //TODO: Change into collision with outer box - if (Position.Z >= 6.4f) { - GD.Print($"Asteroid {Name} below screen!"); - Explode(); - } + // if (Position.Z >= 6.4f) { + // GD.Print($"Asteroid {Name} below screen!"); + // Explode(collisionPosition); + // } } - private void Explode() { + private void Explode(Vector3 collisionPosition) { if (explosion.Instantiate() is GpuParticles3D ex) { GetParent().AddChild(ex); - ex.Position = Position; + ex.Position = collisionPosition; ex.Emitting = true; }