Тема: C3D Engine
Показать сообщение отдельно
Старый 02.08.2012, 19:55   #196
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

//работа с партиклами "дым"
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);
....................
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (02.08.2012)