10. Get noticed 2017 – Particle system.

This is how particle system looks like on the beginning of the implemented them.

The class of the Particle looks that:

public class Particle extends Sprite {

public float x;

public float y;

public float width;

public float height;

public float finalY = 0;

public float finalX = 0;

public float alpha = 1;

private int random;

private Texture tex;

private Sprite sprite;

protected static Random generator = new Random();    public Particle(String color, float posx, float posy) {

tex = new Texture(color + „.png”);

sprite = new Sprite(tex);

width = tex.getWidth()/15;

height = tex.getHeight()/15;

sprite.setSize(width, height);

random = (generator.nextInt(4)+1);

finalX = generator.nextInt(800) – 400;

finalY = generator.nextInt(800) – 400;

x = posx;

y = posy;

}

public void update(float delta) {

x +=  (delta / random) * finalX;

y +=  (delta / random) * finalY;

}

public void draw(SpriteBatch batch, float alpha) {

sprite.setPosition(x, y);

sprite.setAlpha(alpha);

sprite.draw(batch);

}

public void dispose() {

tex.dispose();

}

}

And the particle emitter looks like this:

public class ParticleSystem {

private Particle p;

private LinkedList particles;

private LinkedList particlesToDestroy;    public ParticleSystem(int howMany, String color, float posX, float posY) {

particles = new LinkedList();

particlesToDestroy = new LinkedList();

for(int i=0; i            p = new Particle(color, posX, posY);

particles.add(p);

}

}

public void particleShoot(float posX, float posY) {

for(Particle p : particles) {

p.finalX = posX + Particle.generator.nextInt(10) – 5;

p.finalY = posY + Particle.generator.nextInt(120) – 60;

}

}

public void update(float deltaTime) {

for(Particle p : particles) {

p.update(deltaTime);

}

destroy();

}

public void draw(SpriteBatch sp, float delta) {

for(Particle p : particles) {

p.alpha -= delta;

if(p.alpha                 p.alpha = 0;

particlesToDestroy.add(p);

}

p.draw(sp, p.alpha);

}

}

public void destroy() {

for(int i = 0; i             particles.remove(particlesToDestroy.get(i));

}

particlesToDestroy.clear();

}

public void dispose() {

for(Particle p : particles) {

p.dispose();

}

}

}

Btw. paste code looks better by this convener but the „is greater/less” or „equal to” is not formatting properly.
The code is after update and the area of the particle effect is more randomly.
When random is equal to four:
kiqzkl

And the random is eight right now:zjyrhh
I should said: the random has value from one to eight.

Code on!

Reklamy

One thought on “10. Get noticed 2017 – Particle system.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s