Форум: "Игры";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизПриколы с DirectX !!! Найти похожие ветки
← →
Sword-Fish (2003-04-09 22:37) [0]Добрый вечер !!!!
У меня очередной вопрос ...
В привмерах с DirectX есть пример с FadeOut и FadeIn и Flash ...
Так вот там только для палитры в 256 цветов ...
А можно сделать тоже самое но только с 16 битными картинками и как это сделать (желательно пример) !!!
Please ...
С уважением Sword-Fish !!!
← →
A_n_t (2003-04-10 05:50) [1]Обработать всю картинку по пиксельно - но будет т-о-р-м-о-з-и-т-ь :)
← →
Думкин (2003-04-10 06:10) [2]http://gdsw.narod.ru/Docs/gamma_cont.htm
← →
Думкин (2003-04-10 09:24) [3]Но лучше так:
//Передаем первичную поверхность
procedure Fade(FDDSPrimary : IDirectDrawSurface7);
var
Gamma : IDirectDrawGammaControl;
NewGamma,OldGamma : TDDGammaRamp;
i,j : integer;
begin
FDDSPrimary.QueryInterface(IID_IDirectDrawGammaControl,Gamma);//Получаем интерфейс
Gamma.GetGammaRamp(0,OldGamma);//Сораняем старое
Gamma.GetGammaRamp(0,NewGamma);//И новое - надо!
//Гасим экран за 100 циклов.
for j := 100 downto 1 do
begin
//Получаем новые значения
for i :=0 to 255 do
begin
NewGamma.red[i] := (OldGamma.red[i] *j)div 100;
NewGamma.green[i] := (OldGamma.green[i]*j)div 100;
NewGamma.blue[i] := (OldGamma.blue[i] *j)div 100;
end;
Gamma.SetGammaRamp(0,NewGamma);//Применяем новые значения
Sleep(50) //Немного ждем и далле по циклу
end;
( 0,oldGamma) Но лучше так:
//Передаем первичную поверхность
procedure Fade(FDDSPrimary : IDirectDrawSurface7);
var
Gamma : IDirectDrawGammaControl;
NewGamma,OldGamma : TDDGammaRamp;
i,j : integer;
begin
FDDSPrimary.QueryInterface(IID_IDirectDrawGammaControl,Gamma);//Получаем интерфейс
Gamma.GetGammaRamp(0,OldGamma);//Сораняем старое
Gamma.GetGammaRamp(0,NewGamma);//И новое - надо!
//Гасим экран за 100 циклов.
for j := 100 downto 1 do
begin
//Получаем новые значения
for i :=0 to 255 do
begin
NewGamma.red[i] := (OldGamma.red[i] *j)div 100;
NewGamma.green[i] := (OldGamma.green[i]*j)div 100;
NewGamma.blue[i] := (OldGamma.blue[i] *j)div 100;
end;
Gamma.SetGammaRamp(0,NewGamma);//Применяем новые значения
Sleep(50) //Немного ждем и далле по циклу
end;
Gamma.SetGammaRamp(0,oldGamma);//Возвращаем старые значения(если надо)
Gamma := nil //Уничтожаем интерфейс
end;
← →
Sword-Fish (2003-04-10 16:19) [4]Спасибо большое за примеры !!!
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c