aboutsummaryrefslogtreecommitdiff
path: root/examples/particle_system/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/particle_system/main.cpp')
-rw-r--r--examples/particle_system/main.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/examples/particle_system/main.cpp b/examples/particle_system/main.cpp
index f4b047c..a838bed 100644
--- a/examples/particle_system/main.cpp
+++ b/examples/particle_system/main.cpp
@@ -18,6 +18,7 @@ Timer timer;
Timer::Handler* hnd;
Texture* tex;
Shader* shader;
+Sprite* spr;
const char* shader_code = R"(
#VERTEX_SHADER
Vertex vert(Vertex v)
@@ -37,19 +38,20 @@ const float Pi = 3.14f;
void onLoad()
{
tex = Texture::createTexture("texture.png");
+ spr = new Sprite(tex, Sprite::Origin::MiddleCenter);
shader = Shader::createShader(shader_code);
ParticleSystemDef def;
def.maxParticleCount = 30;
- def.emitterDef.emitRateDef.rate.rate = 0.03f;
- def.emitterDef.forceDef.force.force = 20.f;
+ def.emitterDef.emitRateDef.rate.rate = 0.01f;
+ def.emitterDef.forceDef.force.force = 10.f;
def.emitterDef.positionDef.enableRandom = true;
def.emitterDef.positionDef.position.random.floor = Vector2<float>(0, 0);
- def.emitterDef.positionDef.position.random.ceil = Vector2<float>(0, 0);
+ def.emitterDef.positionDef.position.random.ceil = Vector2<float>(0, 10);
def.emitterDef.directionDef.enableRandom = true;
- def.emitterDef.directionDef.direction.random.floor = -Pi /6 - Pi /2;
- def.emitterDef.directionDef.direction.random.ceil = Pi /6 - Pi / 2;
+ def.emitterDef.directionDef.direction.random.floor = 0;
+ def.emitterDef.directionDef.direction.random.ceil = Pi*2;
def.particleDef.colorOverTimeDef.enable = true;
def.particleDef.colorOverTimeDef.colorStart = Color(255, 255, 0, 255);
@@ -59,13 +61,16 @@ void onLoad()
def.particleDef.angularSpeedDef.angularSpeed.random.floor = -1;
def.particleDef.angularSpeedDef.angularSpeed.random.ceil = 1;
*/
+
+ //def.particleDef.linearAccelarationDef.linearAccelaration = Vector2<float>(0, 10);
+
def.particleDef.sizeOverTimeDef.enable = true;
def.particleDef.sizeOverTimeDef.start = 1;
- def.particleDef.sizeOverTimeDef.end = 0.1;
+ def.particleDef.sizeOverTimeDef.end = 0.5;
- def.particleDef.lifeTimeDef.life.life = 4;
+ def.particleDef.lifeTimeDef.life.life = 0.5;
p = new ParticleSystem(def);
- p->setGraphic(tex);
+ p->setSprite(spr);
}
void onEvent(Event* e)
@@ -87,7 +92,8 @@ void onDraw()
Mouse* m = Mouse::get();
int x, y;
m->getState(&x, &y);
- p->render(x, y);
+ p->setPosition(x, y);
+ p->render();
shader->unuse();
}