Godot 3 2D Fake Explosion Particles
December 9, 2019 ยท View on GitHub
A script to simulate exploding particles.

Instalation
- Download the repository ZIP file.
- Copy
fake_explosion_particles.tscnandfake_explosion_particles.gd.
Usage
Instance fake_explosion_particles.tscn and attach fake_explosion_particles.gd as a script.
You can of course use GDScript as well.
# Creata a new node.
var fake_explosion = Node2D.new()
fake_explosion.name = "fake_explosion"
# Attach the script.
fake_explosion.set_script(preload("res://path/to/fake_explosion_particles.gd"))
# Set 'fake_explosion' variables.
fake_explosion.min_particles_number = 5
fake_explosion.max_particles_number = 10
fake_explosion.min_particles_gravity = 20
fake_explosion.max_particles_gravity = 60
fake_explosion.min_particles_velocity = 20
fake_explosion.max_particles_velocity = 60
fake_explosion.min_particles_size = 1
fake_explosion.max_particles_size = 2
# Set its position
fake_explosion.position = Vector2(0, 0)
# This is useful if you want the explosion to be more visible.
fake_explosion.z_index = 1
# Add it to the scene.
get_parent().add_child(fake_explosion, true)
# And then you can explode it whenever you want.
fake_explosion.explode_particles = true
# You can use the name of the group to find all the fake particles nodes more easily.
get_tree().get_nodes_in_group("fake_explosion_particles")
You can change the colors of the particles, but you have to change them inside the script. They are set in particles_colors_with_weights.
The colors of the particles are chosen randomly depending on weights. If you want a color to have more probabilities to be chosen, give it a greater weight.
These are the defaults:
var particles_colors_with_weights = [
[4, Color("#ffffff")],
[2, Color("#000000")],
[8, Color("#ff004d")],
[8, Color("#ffa300")],
[10, Color("#ffec27")]
]
Parameters

The minimum and maximum variables values are used to generate random values. If you don't want to use random values, set the minimum and maximum variables values with the same value.
Min particles number
| Name | Type | Description | Default |
|---|---|---|---|
min_particles_number | int | Set the mininum number of the particles. | 200 |
Max particles number
| Name | Type | Description | Default |
|---|---|---|---|
max_particles_number | int | Set the maximum number of the particles. | 400 |
Min particles gravity
| Name | Type | Description | Default |
|---|---|---|---|
min_particles_gravity | float | Set the mininum gravity of the particles. | 200.0 |
Max particles gravity
| Name | Type | Description | Default |
|---|---|---|---|
max_particles_gravity | float | Set the maximum gravity of the particles. | 600.0 |
Min particles velocity
| Name | Type | Description | Default |
|---|---|---|---|
min_particles_velocity | float | Set the mininum initial velocity of the particles. | 200.0 |
Max particles velocity
| Name | Type | Description | Default |
|---|---|---|---|
max_particles_velocity | float | Set the maximum initial velocity of the particles. | 600.0 |
Max particles position X
| Name | Type | Description | Default |
|---|---|---|---|
min_particles_position_x | int | Set the maximum initial X position of the particles. | ProjectSettings.get_setting("display/window/size/width" |
Max particles position Y
| Name | Type | Description | Default |
|---|---|---|---|
max_particles_position_y | int | Set the maximum initial Y position of the particles. | ProjectSettings.get_setting("display/window/size/height" |
Max particles size
| Name | Type | Description | Default |
|---|---|---|---|
max_particles_size | int | Set the minimum size of the particles. | 1 |
Max particles size
| Name | Type | Description | Default |
|---|---|---|---|
max_particles_size | int | Set the maximum size of the particles. | 3 |
Get random position
| Name | Type | Description | Default |
|---|---|---|---|
get_random_position | bool | Get a random initial position for the particles. | false |
If set to true, the particles will be created in a random position based on max_particles_position_x and max_particles_position_y.
Start timer
| Name | Type | Description | Default |
|---|---|---|---|
start_timer | bool | Start the particles timer. | false |
If set to true it will start a timer. When it times out, it will create new particles.
Timer wait time
| Name | Type | Description | Default |
|---|---|---|---|
timer_wait_time | float | Set the wait time of the timer (in seconds). | 1 |
Particles explode
| Name | Type | Description | Default |
|---|---|---|---|
particles_explode | bool | Explode the particles. | false |
If set to true, the particles will explode.
Group name
| Name | Type | Description | Default |
|---|---|---|---|
group_name | String | Set the name of the group. | fake_explosion_particles |
Changelog
See CHANGELOG.
Authors
- Me ๐ hiulit.
Credits
Thanks to:
- CowThing - For the
_rand_arrayfunction.