IPB
ЛогинПароль:

> Анимация в Паскале, Дык, помогите.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

Репутация: -  0  +


Я хочу сделать в игрухе постоянно (часто) обновляемый экран. Для этого меняю страницы. Изображение мелькает, раздваивается, а местами вообще исчезает. Как быть? (мне бы с игрухой до осени управиться, а то в башке засела - не вышибешь. Как заноза. ПОМОГИТЕ.)


--------------------
Если отладка - процесс удаления ошибок из программы, то программирование должно быть процессом их внесения.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 424
Пол: Мужской

Репутация: -  2  +


А помогите пожалуйста улучшить это ( мигает, а это не приятно!)
Код
program DRAW_BLAD;
uses crt, graph;
const
left  = #75;
right = #77;
up    = #72;
down = #80;

var x, y, Driver, mode: integer;
c: char;
ekran:word;

procedure drawhead(x,y: integer);
var i:integer;
begin
     setfillStyle (solidfill, yellow);
     Pieslice(x,y,0,360,4);
     setcolor(blue);
     line(x-7, y-1, x+6, y-4);
     line(x-7, y-2, x+6, y-4);
     setcolor(black);
     line(x-4, y-3, x+3, y-4);
     setcolor(lightblue);
     for i:= 1 to 3 do
         line(x-4, y-3-i, x+3, y-5-i);
     setcolor(lightblue);
     setfillstyle(solidfill, lightblue);
     pieslice(x+1,y-1,0, 360, 1);
end;

procedure drawbody(x,y: integer);
var i: integer;
begin
     x:=x;
     y:=y+7;
     setfillstyle (solidfill, lightblue);
     bar( x-2, y, x+3, y+15 );
     setcolor(red);
     line(x-4, y-3, x+3, y);
     line(x-4, y-2, x+3, y);
     line(x-4, y-1, x+3, y);
     setcolor(white);
     line(x-4, y-4, x+2, y-1);
     setfillstyle ( 1 , lightblue);
     pieslice( x-1, y+2, 0, 360, 2);
     for i:= 0 to 4 do  begin
         if (i=0) or (i=4) then
         setcolor(white)
         else
         setcolor(lightblue);
         line(x-1, y+i, x+4, y+14+i);
     end;
     setcolor(yellow);
     setfillstyle( 1, yellow);
     pieslice( x+4, y+16, 0, 360, 2);
end;

procedure drawlegs(x,y:integer);
begin
     x:=x;
     y:=y+7+15;
     setcolor(red);
     setfillstyle(1,red);
     bar(x-2, y, x+3, y+2);
     setcolor(blue);
     setfillstyle(1, lightblue);
     bar(x-2,y+2,x+3, y+12);
     setcolor(yellow);
     setfillstyle( 1, yellow);
     bar(x-1,y+12,x+1, y+14);
     setcolor(black);
     setfillstyle(1, black);
     bar(x-1,y+14,x+2, y+17);
     bar(x-2,y+15,x+5, y+18);
     pieslice( x+5, y+16, 0 , 360, 2);
end;
procedure  drawblad (x,y:integer);
begin
       drawhead(x,y);
       drawbody(x,y);
       drawlegs(x,y);
end;

Begin
     ekran:=0;
     x:=100;
     y:=200;
     driver:=9;
     Mode:=1;
     initgraph( driver, mode , '');
     setactivepage(ekran);
     setvisualpage(ekran);
     setfillstyle(1, green);
     bar(0,0, getmaxx, getmaxy);
     drawblad(x,y);
     repeat
           ekran:= ekran+1;
           ekran:= ekran mod 2;
           c:=readkey;
           setactivepage(ekran);
           case c of
                #0:
                case readkey of
                     left : begin
                          dec(x);
                          clrscr;
                          setfillstyle(1,green);
                          bar(0,0,getmaxx, getmaxy);
                          drawblad(x,y);
                          end;
                     right: begin
                            inc(x);
                            clrscr;
                            setfillstyle(1,green);
                            bar(0,0,getmaxx, getmaxy);
                            drawblad(x,y);
                            end;
                     up   : begin
                          dec(y);
                          clrscr;
                          setfillstyle(1,green);
                          bar(0,0,getmaxx, getmaxy);
                          drawblad(x,y);
                          end;
                     down : begin
                          inc(y);
                          clrscr;
                          setfillstyle(1,green);
                          bar(0,0,getmaxx, getmaxy);
                          drawblad(x,y);
                          end;
                end;
           end;
           setvisualpage(ekran);
     until x=200;
     readln;

end.


--------------------
Чего хочет женщина – того хочет Бог
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
LHx   Анимация в Паскале   3.07.2004 2:13
NetAnton   для анимации используют спрайты. подробнее о них п…   3.07.2004 2:44
GLuk   Выложи код, поглядим...   3.07.2004 14:14
trminator   Экран моргает. 60 раз в секунду (стандартно для гр…   3.07.2004 15:30
warner   А есть во FreePascal что-то похожее?? потому что…   20.04.2005 19:13
Altair   Можно использовать переключение видеостраниц. Тогд…   4.07.2004 17:16
GLuk   Судя по сабжу он и так юзает переключение страниц…   4.07.2004 18:21
Altair   Ага, все ясно, точно, он использует переключение в…   4.07.2004 19:31
LHx   Мне больше нравится путь самурая oleg_7 :). Какой …   6.07.2004 1:38
Altair   Прошу не путать, я не самурай, а извращенец! …   6.07.2004 2:30
LHx   А vga-никак нельзя?? Ну вы в натуре извращенец, ми…   7.07.2004 0:03
BlackShadow   Ну почему нельзя? Oleg_Z, ты же не думаешь, что ма…   7.07.2004 15:52
LHx   Вообще-то, я уже попробовал ega - заработало. :D …   7.07.2004 23:37
BlackShadow   Объясняю. Есть несколько очаровательнвх режимов, …   8.07.2004 18:03
LHx   Я бы с большой радостью все понял, но я исключител…   10.07.2004 0:14
Altair   LHx, сосредоточся на цели - ускорить вывод на экра…   10.07.2004 0:21
SKVOZNJAK   Или же выбрать компилятор помощнее и наплевать на …   10.07.2004 10:04
trminator   Вот цикл статей на osp.ru/pcworld http://www.osp.…   10.07.2004 21:20
arhimag   А помогите пожалуйста улучшить это ( мигает, а это…   23.12.2005 22:38
volvo   Ну, на данном этапе видеостраницы тебе только меша…   23.12.2005 23:08
Gothic_Snake   В таком случае тебе лучше будет перевести свою про…   24.12.2005 2:31
spectrum   люди помогите плз. обясните чайнику как открыть фа…   10.10.2008 19:38
Lapp   люди помогите плз. обясните чайнику как открыть фа…   14.10.2008 2:40
arhimag   А можно ли от него совсем избавиться???   23.12.2005 23:11
arhimag   А если её перевести в фпс то ничего не измениться?…   24.12.2005 4:12
Gothic_Snake   А если её перевести в фпс то ничего не измениться…   25.12.2005 23:35
GoodWind   можно и в FPC, как больше нравится   25.12.2005 18:00
ey   Народ, вопрос по теме. Использовал раньше графичес…   12.07.2008 22:49
volvo   В режиме Graph 640*480 всего одна видеостраница, н…   12.07.2008 23:05
Гость   Как в ФПС переключать видео страницы?   12.07.2008 23:28


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.05.2024 11:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name