collisionPosition corrected

pull/8/head
Sascha 2023-10-23 10:46:34 +07:00
parent b396629e90
commit a2ecee5f31
2 changed files with 14 additions and 14 deletions

@ -20,12 +20,12 @@ curve = SubResource("Curve_43f32")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ssaw8"] [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ssaw8"]
emission_shape = 1 emission_shape = 1
emission_sphere_radius = 1.0 emission_sphere_radius = 1.0
radial_velocity_min = 1.0 radial_velocity_min = 0.5
radial_velocity_max = 2.0 radial_velocity_max = 1.0
radial_velocity_curve = SubResource("CurveTexture_xp5x6") radial_velocity_curve = SubResource("CurveTexture_xp5x6")
gravity = Vector3(0, 0, 0) gravity = Vector3(0, 0, 0)
scale_min = 0.01 scale_min = 0.01
scale_max = 0.04 scale_max = 0.02
scale_curve = SubResource("CurveTexture_s7b1r") scale_curve = SubResource("CurveTexture_s7b1r")
turbulence_noise_strength = 0.5 turbulence_noise_strength = 0.5
turbulence_influence_max = 0.2 turbulence_influence_max = 0.2
@ -54,13 +54,12 @@ curve = SubResource("Curve_w41ea")
[node name="Explosion" type="GPUParticles3D"] [node name="Explosion" type="GPUParticles3D"]
emitting = false emitting = false
amount = 100 amount = 250
sub_emitter = NodePath(".") sub_emitter = NodePath(".")
lifetime = 2.0
one_shot = true one_shot = true
explosiveness = 1.0 explosiveness = 1.0
trail_enabled = true trail_enabled = true
trail_lifetime = 1.0 trail_lifetime = 0.5
process_material = SubResource("ParticleProcessMaterial_ssaw8") process_material = SubResource("ParticleProcessMaterial_ssaw8")
draw_passes = 2 draw_passes = 2
draw_pass_1 = ExtResource("1_6sgsn") draw_pass_1 = ExtResource("1_6sgsn")

@ -35,21 +35,22 @@ public partial class Asteroid : Node3D {
KinematicCollision3D collision = asteroidRb.MoveAndCollide(new(0, 0, speed * (float)delta)); KinematicCollision3D collision = asteroidRb.MoveAndCollide(new(0, 0, speed * (float)delta));
if (collision?.GetCollider() is Node3D collider) { if (collision?.GetCollider() is Node3D collider) {
GD.Print($"{Name} collides with {collider.GetParentNode3D().Name}"); GD.Print($"{Name} collides with {collider.GetParentNode3D().Name}");
if (collider is Asteroid asteroid) asteroid.Explode(); Vector3 collisionPosition = collision.GetPosition();
Explode(); if (collider is Asteroid asteroid) asteroid.Explode(collisionPosition);
Explode(collisionPosition);
} }
//TODO: Change into collision with outer box //TODO: Change into collision with outer box
if (Position.Z >= 6.4f) { // if (Position.Z >= 6.4f) {
GD.Print($"Asteroid {Name} below screen!"); // GD.Print($"Asteroid {Name} below screen!");
Explode(); // Explode(collisionPosition);
} // }
} }
private void Explode() { private void Explode(Vector3 collisionPosition) {
if (explosion.Instantiate() is GpuParticles3D ex) { if (explosion.Instantiate() is GpuParticles3D ex) {
GetParent().AddChild(ex); GetParent().AddChild(ex);
ex.Position = Position; ex.Position = collisionPosition;
ex.Emitting = true; ex.Emitting = true;
} }