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.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/examples/particle_system/main.cpp b/examples/particle_system/main.cpp
index 0d2b0f4..f4b047c 100644
--- a/examples/particle_system/main.cpp
+++ b/examples/particle_system/main.cpp
@@ -33,34 +33,37 @@ Color frag(Color col, Texture tex, Vertex v)
}
#END_FRAGMENT_SHADER
)";
+const float Pi = 3.14f;
void onLoad()
{
- tex = Texture::createTexture("smoke.png");
+ tex = Texture::createTexture("texture.png");
shader = Shader::createShader(shader_code);
ParticleSystemDef def;
def.maxParticleCount = 30;
- def.emitterDef.emitRateDef.rate.rate = 0.5f;
+ def.emitterDef.emitRateDef.rate.rate = 0.03f;
def.emitterDef.forceDef.force.force = 20.f;
- def.emitterDef.positionDef.position.position = Vector2<float>(200, 200);
+ 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.directionDef.enableRandom = true;
- def.emitterDef.directionDef.direction.random.floor = 0;
- def.emitterDef.directionDef.direction.random.ceil = 3.14 * 2;
+ def.emitterDef.directionDef.direction.random.floor = -Pi /6 - Pi /2;
+ def.emitterDef.directionDef.direction.random.ceil = Pi /6 - Pi / 2;
def.particleDef.colorOverTimeDef.enable = true;
- def.particleDef.colorOverTimeDef.colorStart = Color(255, 255, 255, 255);
- def.particleDef.colorOverTimeDef.colorEnd = Color(255, 255, 255, 0);
-
+ def.particleDef.colorOverTimeDef.colorStart = Color(255, 255, 0, 255);
+ def.particleDef.colorOverTimeDef.colorEnd = Color(255, 0, 0, 0);
+/*
def.particleDef.angularSpeedDef.enableRandom = true;
- def.particleDef.angularSpeedDef.angularSpeed.random.floor = 0.05;
+ def.particleDef.angularSpeedDef.angularSpeed.random.floor = -1;
def.particleDef.angularSpeedDef.angularSpeed.random.ceil = 1;
-
+*/
def.particleDef.sizeOverTimeDef.enable = true;
def.particleDef.sizeOverTimeDef.start = 1;
- def.particleDef.sizeOverTimeDef.end = 3;
+ def.particleDef.sizeOverTimeDef.end = 0.1;
- def.particleDef.lifeTimeDef.life.life = 5;
+ def.particleDef.lifeTimeDef.life.life = 4;
p = new ParticleSystem(def);
p->setGraphic(tex);
}
@@ -81,8 +84,10 @@ void onUpdate(int ms)
void onDraw()
{
shader->use();
- p->render(50, 50);
- //tex->render(10, 10);
+ Mouse* m = Mouse::get();
+ int x, y;
+ m->getState(&x, &y);
+ p->render(x, y);
shader->unuse();
}