Помощь - Поиск - Пользователи - Календарь
Полная версия: graph в Pascal
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
alecsandr
написал задачу но сам сделатьь нее могу, не знаю как. Пушка должна стрелять по мишени в то время как мишень должна то появлятся, то проподать. Потому не всегда ядро должно попадать по мишени. А когда попадет то должно как то это показывать например: BOOM или что то в этом роде. И можете как небуть подправить пушку?((



 
program laba14;
uses graph, crt;
var d,m: integer;
procedure risun;
begin
circle(120, getmaxy-120,15);
setcolor(black);
delay(500);
circle(120, getmaxy-120,15);
setcolor(5);
circle(200,getmaxy-170,15);
setcolor(black);
delay(500);
circle(200,getmaxy-170,15);
setcolor(6);
circle(280, getmaxy-210,15);
setcolor(black);
delay(500);
circle(280, getmaxy-210,15);
setcolor(1);
circle(360,getmaxy-260,15);
setcolor(black);
delay(500);
circle(360, getmaxy-260,15);
setcolor(0);
setcolor(yellow);
line(500,getmaxy-375,500,getmaxy-395);
line(500,getmaxy-345,500,getmaxy-330);
line(485,getmaxy-360,470,getmaxy-360);
line(515,getmaxy-360,530,getmaxy-360);
setcolor(black);
delay(700);
line(500,getmaxy-375,500,getmaxy-395);
line(500,getmaxy-345,500,getmaxy-330);
line(485,getmaxy-360,470,getmaxy-360);
line(515,getmaxy-360,530,getmaxy-360);
delay(700);
setcolor(green);
line(500,getmaxy-375,500,getmaxy-395);
line(500,getmaxy-345,500,getmaxy-330);
line(485,getmaxy-360,470,getmaxy-360);
line(515,getmaxy-360,530,getmaxy-360);
setcolor(black);
delay(700);
line(500,getmaxy-375,500,getmaxy-395);
line(500,getmaxy-345,500,getmaxy-330);
line(485,getmaxy-360,470,getmaxy-360);
line(515,getmaxy-360,530,getmaxy-360);
end;
begin
d:=detect;
initgraph(d,m,'');
moveto(15, getmaxy);
setcolor(green);
rectangle(15,getmaxy,80,getmaxy-30);
moveto(40,getmaxy-30);
lineto(70,getmaxy-65);
moveto(15,getmaxy-30);
lineto(45,getmaxy-65);
circle(60,getmaxy-75,15);
setcolor(5);
circle(500,getmaxy-360,30);
setcolor(red);
pieslice(500,getmaxy-360,0,360,10);
circle(500,getmaxy-360,60);
setcolor(yellow);
readln;
risun;
readkey;
end.


Ozzя
"мишень должна то появлятся, то проподать. "
Не вижу проблемы.
Повесить на таймер. Задать временной интервал. А уж стереть мишень никаких проблем и вовсе нет.
alecsandr
Можешь на языке паскаль?
alecsandr
Плиз помогите
andriano
Ну так тебе помогают, а ты на это не реагируешь.
Если что не получается, задавай конкретные вопросы.
alecsandr
Нужна чтобы мишень моргала, пушка стреляла, но не всегда по ней попадает. А когда попадет должно оповестить.
andriano
Цитата(alecsandr @ 15.12.2009 21:08) *
Нужна чтобы мишень моргала,
Нужно многократно перерисовывать картинку. Как в мультипликации - менять кадр за кадром. Время между сменами кадров просчитывать по таймеру.
Цитата
пушка стреляла,
Распиши подробнее, что при этом должно происходить на экране.
Цитата
но не всегда по ней попадает.
А от чего должно зависеть, попадет или нет?
Цитата
А когда попадет должно оповестить.
Как?
alecsandr
1. Можешь написать это на паскале?(как она моргает) 2. Пускай всегда попадает 3. Пушка у меня уже стреляет 4. Как хочешь на свое усмотрение(потому что сейчас она оповещает только палочками)
andriano
1. Я много чего могу, но вряд ли то, что я могу написать, тебе поможет:
- у меня не установлен Borland Pascal, и вообще я им уже много лет не пользуюсь.
- следовательно, написанная тобой программа у меня не запустится - есть свои особенности графического режима.
- то, что я могу написать, не запустится у тебя.
- я не использую модуль graph, т.к. считаю его неподходящим для моих целей.
Поэтому наиболее плодотворный метод работы - мы с тобой по-русски обсуждаем алгоритм работы программы. А с русского на Паскаль ты переводишь сам.
4. У меня нет никаких "усмотрений" насчет твоей задачи. Делать будешь ТЫ, и как делать, решать ТЕБЕ. Могу только ответить на твои вопросы.
alecsandr
Я нарисовал мишень, я так понял, что перед ней нужно цикл, чтобы она моргала, а как это сделать?
andriano
Нужно ее перерисовывать в цикле.
- начало цикла
- нарисовать
- подождать
- стереть
- конец цикла

Собственно, это неоднократно обсуждалось на форуме в разделе "Игры"
Игра с корабликами
ТАНКИ
Кстати, посмотри и ссылки на литературу в этом разделе.
alecsandr
А как сделать чтобы когда попадешь он написал вoom?
andriano
Отслеживать фпакт попадания и выводить надпись на экране.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.