Форум: "Игры";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизКак сделать переходы между менюшками? Найти похожие ветки
← →
NailMan (2003-08-11 12:58) [0]Собсно сабж.
Образец демо-версии менюшек (*.EXE) можно скачать здесь:
http://nailman.narod.ru/zakroma/UT_GUI_Demo.rar
RAR 3.0, 755Кб. Чистый DirectX;
Версия исправленная(раньше без джоя не запускалась :-)) и добавлены червячки ala Матрица.
Сосбно не радует что переход из менюшки в менюшку резкий(резко меняется бэкграунд). Хотелось бы сделать это дело через переход в виде:
- шторок сверху-снизу. выхотя из менюшки схлопываются, а прри входе расхлопываются.
- затухание экрана
- еще как-то
Пробовал делать первый вариант через рисование кусочка текстуры черного цвета(D3DXSprite-ом) - какие-то левые линии на краях видны, которые масштабируются вместе со спрайтом. Пробовал делать через вершинный буфер(XYZRHW) 4 треугольника (2 снизу 2 сверху) - какие-то глюки рисуются.
Второй вариант я не догоняю как реализовать. Гаммарампой? Че-то не понял я как юзать структуру TD3DGAMMARAMP. Как затенить весь экран с ее помощью?
Возникла идея сделать прямоугольник на весь экран, черного цвета и когда должно происходить затемнение просто увеличивать альфу у вершин/материала.
Кто чего подскажет? Может более оригинальные варианты?
← →
Карлсон (2003-08-11 13:57) [1]насчет гаммарампы - насколько я понял, именно так и делается это самое затухание.
где-то тут была такая тема, там один человек написал модуль для DirectX"а.
я его переделал для DelphiX:
unit Effects;
interface
uses
Windows, DXDraws, DirectDraw;
Procedure FadeIn(DXDraw: TDXDraw; Time: cardinal);
Procedure FadeOut(DXDraw: TDXDraw; Time: cardinal);
implementation
Procedure FadeIn(DXDraw: TDXDraw; Time: cardinal);
var
i,j : integer;
Gamma : IDirectDrawGammaControl;
NewGamma,OldGamma : TDDGammaRamp;
begin
DXDraw.Primary.GammaControl.QueryInterface(IID_IDirectDrawGammaControl ,Gamma);
DXDraw.Primary.GammaControl.GetGammaRamp(0,OldGamma);
DXDraw.Primary.GammaControl.GetGammaRamp(0,NewGamma);
for j := 1 to 100 do
begin
for i :=0 to 255 do
begin
NewGamma.green[i]:=(OldGamma.green[i]*j)div 100;
NewGamma.blue[i]:=(OldGamma.blue[i]*j)div 100;
NewGamma.red[i]:=(OldGamma.red[i]*j)div 100;
end;
DXDraw.Primary.GammaControl.SetGammaRamp(0,NewGamma);
Sleep(Time);
end;
Gamma := nil;
end;
Procedure FadeOut(DXDraw: TDXDraw; Time: cardinal);
var
i,j : integer;
Gamma : IDirectDrawGammaControl;
NewGamma,OldGamma : TDDGammaRamp;
begin
DXDraw.Primary.GammaControl.QueryInterface(IID_IDirectDrawGammaControl ,Gamma);
DXDraw.Primary.GammaControl.GetGammaRamp(0,OldGamma);
DXDraw.Primary.GammaControl.GetGammaRamp(0,NewGamma);
for j := 100 downto 1 do
begin
for i :=0 to 255 do
begin
NewGamma.blue[i]:=(OldGamma.blue[i]*j)div 100;
NewGamma.green[i]:=(OldGamma.green[i]*j)div 100;
NewGamma.red[i]:=(OldGamma.red[i]*j)div 100;
end;
DXDraw.Primary.GammaControl.SetGammaRamp(0,NewGamma);
Sleep(Time);
end;
if NewGamma.red[0]=0 then
DXDraw.Primary.GammaControl.SetGammaRamp(0,oldGamma);
Gamma := nil;
end;
end.
может и найду первоначальный источник или ту ветку.
← →
Карлсон (2003-08-11 13:59) [2]вот та ветка: http://delphimaster.net/view/9-1050737499/
← →
NailMan (2003-08-11 14:09) [3]Пасиба, сегодня буду ковырять и обновлять.
Кстате, а управление рампой на всех видюхах работает? Что произойдет если я начну ее дрюкать, а видюха этого аппаратно не поджеривает?
← →
TButton (2003-08-11 16:14) [4]а чо за юнит DirectDraw?
← →
Всеволод Соловьёв (2003-08-11 21:58) [5]>а чо за юнит DirectDraw?
что за зверь DirectX?
← →
TButton (2003-08-11 23:41) [6]блин. я не дурак.
Я знаю что за зверь директ Х. Но (!) компилятор жалуется на отсутствие DirectDraw.dcu, ну я ему конечно не поверил "как так нету?!" и полез искать, оказывается действительно нету. Вот почему испрашиваю что ето и откуда.
← →
Всеволод Соловьёв (2003-08-12 11:29) [7]а исходник pas-файлом есть? если есть, так что за проблема?
← →
TButton (2003-08-12 15:30) [8]это я не подумал...
нету. мож скачать его где? а мож есть у кого?
← →
NailMan (2003-08-12 15:51) [9]Для какого директа тебе выслать?
Есть для 8.0/8.1 и 9.0
← →
NailMan (2003-08-12 15:55) [10]Короче я тебе послал оба варианта. Пиши если чё-то еще хочет из модулей.
← →
TButton (2003-08-12 19:02) [11]gracies
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.03 c