//работа с партиклами "дым"
class ParticleCallback : public ocge::IParticleCallback
{
public:
virtual ocge::IParticleProperties & onLoad(ocge::IParticleProperties &properties)
{
properties.scale = 10;
properties.alpha = (float)(rand() % 100) / 100.0;
properties.position = glm::vec3(properties.x/5.0,5.0-properties.alpha*5.0,properties.y/5.0);
return properties;
}
virtual ocge::IParticleProperties &onProcess(ocge::IParticleProperties &properties)
{
properties.color = glm::vec3(properties.alpha*0.3, properties.alpha*0.3, properties.alpha*0.3);
properties.alpha -= 0.5 * 0.001;
if(properties.alpha <= 0) properties.alpha += 1.0;
properties.position.y = 5.0-properties.alpha*5.0;
return properties;
}
};
//создание партиклов
....................
ocge::IParticleSystem* psystem = smgr->createParticleSystem("myPS",engine->createTexture("smoke.oi"),10*10, new ParticleCallback());
psystem->setActive(true);
....................