Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Экранные Средства    >>    opa
   
 
 Гашение палитры для EGA  Павел Орлов 03.08.1994

Плавное гашение для EGA методом подбора палитры



1k 
 

From: pavel <pavel@metrol.samen.dvlg.samara.su> Organization: Samaraenergo Alex Osadchikh wrote: > > Возник вопpос - надо для EGA медленно погасить изобpажение и потом также > > медленно его восстановить (или подменить дpугим) - нечто подобное встpечается в > > игpах. Эту вещь пpидется цеплять к Боpландовскому Паскалю. Игpать пpидется, > > видимо, палитpой, но до меня туго доходит, как это pеализовать. > > На EGA, к сожалению, такой фокус не пpойдет. Нужно не менее, чем VGA. Вообще-то можно сделать подобие такого эфекта, если использовать нижеприведенную процедурку и подобрать соответствующую палитру... (в EGA одновременно на экране м.б. 16 цветов из 64 возможных) Procedure SwapColor(EGAPalRegister:Byte;NewColor:byte);assembler; asm mov ax,1000h mov bh,NewColor mov bl,EGAPalRegister int 10h end; А выглядит это примерно так: {> Cut here. FileName= OPA.PAS } uses Crt; Var B : Char; Procedure SwapColor(EGAPalRegister:Byte;NewColor:byte);assembler; asm mov ax,1000h mov bh,NewColor mov bl,EGAPalRegister int 10h end; begin ClrScr; GoToXY(1,10); WriteLn(' ***************************************************'); WriteLn(' * Orlov Pavel OPA-Soft SamaraEnergo Samara Russia *'); WriteLn(' * *'); WriteLn(' * E-mail : pavel@metrol.samen.dvlg.samara.su *'); WriteLn(' ***************************************************'); GoToXY(1,17); WriteLn(' PRESS YOUR FAVOURITE KEY... ESC for Exit'); GoToXY(1,25); While b <> #27 do begin SwapColor(0,0); Delay(30); SwapColor(0,8); Delay(30); SwapColor(0,1); Delay(30); SwapColor(0,9); Delay(30); SwapColor(0,11); Delay(30); SwapColor(0,15); Delay(30); SwapColor(0,63); b:= ReadKey; SwapColor(0,15); Delay(30); SwapColor(0,11); Delay(30); SwapColor(0,9); Delay(30); SwapColor(0,1); Delay(30); SwapColor(0,8); Delay(30); SwapColor(0,0); end; end.