Машинка-дай газу! |
Машинка-дай газу! |
Костян |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: 0 |
Здорово народ, ну в общем название темы это и есть вопрос. Короче проблема такая: сделал прогу- рисует машинку. Вопрос на 10 баллов, как заставить эту бесбашенную конструкцию перемещатся по экрану? Через delay со стиранием экрана.
-------------------- ...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор... ...и было в том договоре сказано.... ...что будет создан ночной дозор для контроля темных программистов... ...и будет создан дневной дозор для надзора за светлыми программистами... ..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ............. |
klem4 |
Сообщение
#2
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Сначала сделай процедуру, которая рисует машину относительно базовой точки ну а потом выводии ее на экран изменяя координаты ... вот можешь посмотреть на примере движеня шариков : Движение рисунка
Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#3
|
Гость |
Не обязательно для этого стирать экран... Достаточно с помощью GetImage захватить тот кусок экрана, на котором отрисована машинка, а потом в цикле делать, например, так:
Var Img: Pointer; А вообще, попробуй поискать по форуму с ключевыми словами "анимация", "PutImage", "GetImage"... По-моему, уже кое-что выкладывалось... |
Костян |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: 0 |
Народ еще один вопрос. прога должна рисовать пятиконечную звезду, но почему то выдает ошибку, проверьте- кому не лень.
Код program supercar; uses graph, crt; const zvezda : array[1..12] of pointtype= (x:1; y:176),(x:124; y:175),(x:212; y:2),(x:302; y:175), (x:428; y:177),(x:335; y:237),(x:427; y:427),(x:217; y:308), (x:2; y:427),(x:96; y:236),(x:1; y:176); var gd, gm :integer; begin gd:=detect; initgraph(gd,gm,''); cleardevice; fillpoly(4,zvezda); readkey; end. Сообщение отредактировано: Костян - -------------------- ...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор... ...и было в том договоре сказано.... ...что будет создан ночной дозор для контроля темных программистов... ...и будет создан дневной дозор для надзора за светлыми программистами... ..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ............. |
klem4 |
Сообщение
#5
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Не хватает внешних скобок и пропущены координаты одной точки
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#6
|
Гость |
Костян, а что, "пятиконечная звезда" напрямую связана с темой - "Машинка-дай газу"? Что за привычка, делать из каждой темы свалку вопросов? Нельзя было задать этот вопрос в "Задачах"?
|
Костян |
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: 0 |
Большое СПАСИБО за ПоМоЩь!
-------------------- ...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор... ...и было в том договоре сказано.... ...что будет создан ночной дозор для контроля темных программистов... ...и будет создан дневной дозор для надзора за светлыми программистами... ..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ............. |
Shura |
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 136 Пол: Мужской Реальное имя: Александр Репутация: -2 |
Кстати, про движение машинки... Если она контурная, т.е. состоит из десятка-другого линий, то лучше ее закрашивать каждый раз (рисовать цветом фона), потому что GetImage/PutImage тут себя не оправдают - производительность упадет без пользы. Оных использовать нужно только если перемещается действительно спрайт. И вообще эти процедуры в Graph'е какие-то неуклюжие... Там, где есть фон и множество перекрывающихся спрайтов, иногда так приходится извращаться... Лучше работать с видеостраницами, а эти процедуры написать самому, под свои требования.
-------------------- Старайтесь восполнять пробелы в области незнания! ;-D
|
volvo |
Сообщение
#9
|
Гость |
Shura, а
Цитата если она контурная, т.е. состоит из десятка-другого линий, , то простоSetWriteMode(XORPut); А видеостраницами ты пользоваться, например, в 640*480 со стандартным EGAVGA.BGI вообще не сможешь... Так что еще большой вопрос, чем стОит пользоваться, а чем - нет... |
Shura |
Сообщение
#10
|
Пионер Группа: Пользователи Сообщений: 136 Пол: Мужской Реальное имя: Александр Репутация: -2 |
Shura, а , то просто SetWriteMode(XORPut); Ну это ведь то, что я и имел ввиду... Или нет? Цитата А видеостраницами ты пользоваться, например, в 640*480 со стандартным EGAVGA.BGI вообще не сможешь... Так что еще большой вопрос, чем стОит пользоваться, а чем - нет... Я и не говорил про использование стандартного EGAVGA.BGI. В том-то и дело, что со страницами тут не поработаешь, максимум - GetImage/PutImage, но использовать их без страниц, чтобы сделать что-то красивое, динамичное - супер-изврат. Все идет к тому, что нужно брать другие режимы. Или режим MCGA на крайний случай, или Весу там, например... А в стандартном так и придется, как выше описано. -------------------- Старайтесь восполнять пробелы в области незнания! ;-D
|
Текстовая версия | 15.05.2024 17:57 |