A script to simulate exploding particles.
- Download the repository ZIP file.
- Copy
fake_explosion_particles.tscn
andfake_explosion_particles.gd
.
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")]
]
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.
Name | Type | Description | Default |
---|---|---|---|
min_particles_number |
int |
Set the mininum number of the particles. | 200 |
Name | Type | Description | Default |
---|---|---|---|
max_particles_number |
int |
Set the maximum number of the particles. | 400 |
Name | Type | Description | Default |
---|---|---|---|
min_particles_gravity |
float |
Set the mininum gravity of the particles. | 200.0 |
Name | Type | Description | Default |
---|---|---|---|
max_particles_gravity |
float |
Set the maximum gravity of the particles. | 600.0 |
Name | Type | Description | Default |
---|---|---|---|
min_particles_velocity |
float |
Set the mininum initial velocity of the particles. | 200.0 |
Name | Type | Description | Default |
---|---|---|---|
max_particles_velocity |
float |
Set the maximum initial velocity of the particles. | 600.0 |
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" |
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" |
Name | Type | Description | Default |
---|---|---|---|
max_particles_size |
int |
Set the minimum size of the particles. | 1 |
Name | Type | Description | Default |
---|---|---|---|
max_particles_size |
int |
Set the maximum size of the particles. | 3 |
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
.
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.
Name | Type | Description | Default |
---|---|---|---|
timer_wait_time |
float |
Set the wait time of the timer (in seconds). | 1 |
Name | Type | Description | Default |
---|---|---|---|
particles_explode |
bool |
Explode the particles. | false |
If set to true
, the particles will explode.
Name | Type | Description | Default |
---|---|---|---|
group_name |
String |
Set the name of the group. | fake_explosion_particles |
See CHANGELOG.
Thanks to:
- hiulit - For the original version compatible with Godot 3
- CowThing - For the
_rand_array
function.