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"]
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")

@ -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;
}