summaryrefslogtreecommitdiff
path: root/scene
diff options
context:
space:
mode:
authorromulox_x <romulox_x@yahoo.com>2014-10-12 20:20:56 -0700
committerromulox_x <romulox_x@yahoo.com>2014-10-12 20:20:56 -0700
commit299bccdee99a9858f3bb874c70bd435151018e3a (patch)
treed3d1491ac4e88b8316470f48c05a99ba0858004a /scene
parent948fd83cdded7fed77ae5213101c1a2ece580434 (diff)
offset particle drawing order so that recently emitted particles are always drawn on top of the older ones
Diffstat (limited to 'scene')
-rw-r--r--scene/2d/particles_2d.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/scene/2d/particles_2d.cpp b/scene/2d/particles_2d.cpp
index ded86702ef..819b06e095 100644
--- a/scene/2d/particles_2d.cpp
+++ b/scene/2d/particles_2d.cpp
@@ -507,7 +507,13 @@ void Particles2D::_notification(int p_what) {
}
- for(int i=0;i<particle_count;i++) {
+ int start_particle = (int)(time * (float)particle_count / lifetime);
+
+ for (int id=0;id<particle_count;++id) {
+ int i = start_particle + id;
+ if (i >= particle_count) {
+ i -= particle_count;
+ }
Particle &p=pdata[i];
if (!p.active)