GLScene - Спецэффекты - Огонь
Автор: Daddy
WEB-сайт: http://daddy.mirgames.ru
Поместим на форму GLScene, GLSceneViewer, GLCadencer, GLFireFXManager.
Теперь создадим камеру, две сферы (с источником света внутри) и один кубик.
Поставим сферы по правому и левому краям от квадрата, одной сфере задаём х = 3, а другой х = -3.
Поменяем цвета света GLLightSource1 и GLLigthSource2 выбрав в Object Inspector’е раздел Diffuse = clrOrange у одного и у другого. Теперь создадим сам огонь: У Sphere1 в Object Inspector’е выбираем раздел Effects и нажимаем троеточие, появится окно Sphere1.Xcollection.
Далее нажимаем на + и добавляем FireFX ( в Object Inspector’е в разделе Manager выбираем FireFXManager1) тоже самое проделываем с Sphere2.
Настроим GLFireFXManager1.
Задаём ему:
Cadencer = GLCadencer1
FireBurst = 1
FireDensity = 0,5
FireRadius = 0,5
MaxParticles = 96
OuterColor = clrOrange
ParticleInterval = 0,01
ParticleSize = 0,7
При желании можете поменять направление огня:
Находим в Object Inspector’е раздел FireDir, нажимаем троеточие и в появившемся меню меняем координаты x, y, z.
Далее переходим к кубику.
Заставим его вращаться (см. статью "Примитивное движение") добавив в код нашей программы следующие строчки:
procedure TForm1.GLCadencer1Progress(Sender: TObject;
const deltaTime, newTime: Double);
begin
Cube1.Turn(deltaTime * 10);
Cube1.Roll(deltaTime * 10);
end;
Запускаем программу. Теперь мы можем наблюдать две горящие сферы и вращающийся кубик между ними.
Вот исходник
|