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

 
 Ответить  Открыть новую тему 
> Машинка-дай газу!
сообщение
Сообщение #1


Пионер
**

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

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


Здорово народ, ну в общем название темы это и есть вопрос. Короче проблема такая: сделал прогу- рисует машинку. Вопрос на 10 баллов, как заставить эту бесбашенную конструкцию перемещатся по экрану? Через delay со стиранием экрана.


--------------------
...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор...
...и было в том договоре сказано....
...что будет создан ночной дозор для контроля темных программистов...
...и будет создан дневной дозор для надзора за светлыми программистами...
..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ.............
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Сначала сделай процедуру, которая рисует машину относительно базовой точки ну а потом выводии ее на экран изменяя координаты ... вот можешь посмотреть на примере движеня шариков : Движение рисунка

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Не обязательно для этого стирать экран... Достаточно с помощью GetImage захватить тот кусок экрана, на котором отрисована машинка, а потом в цикле делать, например, так:
Var Img: Pointer;
...
GetMem(Img, ImageSize(10, 10, 100, 50));
{
Подставь свои координаты, машинка должна вмещаться
в заданный прямоугольник полностью
}

GetImage(10, 10, 100, 50, Img^); { Сохранить образ машинки в память }
ClearDevice; { Очистить экран }
...
for i := 1 to 30 do begin
PutImage(X+5*i, Y, Img^, XorPut); { Рисуем изображение }
Delay(2000); { Ждем немного }
putimage(X+5*i, Y, Img^, XorPut); { И опять затираем, особенность XorPut }
end;
...

А вообще, попробуй поискать по форуму с ключевыми словами "анимация", "PutImage", "GetImage"... По-моему, уже кое-что выкладывалось...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

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

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


Народ еще один вопрос. прога должна рисовать пятиконечную звезду, но почему то выдает ошибку, проверьте- кому не лень. blush.gif
Код
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.


Сообщение отредактировано: Костян -


--------------------
...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор...
...и было в том договоре сказано....
...что будет создан ночной дозор для контроля темных программистов...
...и будет создан дневной дозор для надзора за светлыми программистами...
..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ.............
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Не хватает внешних скобок и пропущены координаты одной точки


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Костян, а что, "пятиконечная звезда" напрямую связана с темой - "Машинка-дай газу"? Что за привычка, делать из каждой темы свалку вопросов? Нельзя было задать этот вопрос в "Задачах"?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

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

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


Большое СПАСИБО за ПоМоЩь! smile.gif


--------------------
...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор...
...и было в том договоре сказано....
...что будет создан ночной дозор для контроля темных программистов...
...и будет создан дневной дозор для надзора за светлыми программистами...
..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ.............
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 136
Пол: Мужской
Реальное имя: Александр

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


Кстати, про движение машинки... Если она контурная, т.е. состоит из десятка-другого линий, то лучше ее закрашивать каждый раз (рисовать цветом фона), потому что GetImage/PutImage тут себя не оправдают - производительность упадет без пользы. Оных использовать нужно только если перемещается действительно спрайт. И вообще эти процедуры в Graph'е какие-то неуклюжие... Там, где есть фон и множество перекрывающихся спрайтов, иногда так приходится извращаться... Лучше работать с видеостраницами, а эти процедуры написать самому, под свои требования.


--------------------
Старайтесь восполнять пробелы в области незнания! ;-D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Shura, а
Цитата
если она контурная, т.е. состоит из десятка-другого линий,
, то просто
SetWriteMode(XORPut); 
{ и в цикле }
ShowAuto(X, Y); { <-- Рисуем машинку }
Delay(1000);
ShowAuto(X, Y); { <- Стираем ее }
{ Изменяем координаты }

А видеостраницами ты пользоваться, например, в 640*480 со стандартным EGAVGA.BGI вообще не сможешь... Так что еще большой вопрос, чем стОит пользоваться, а чем - нет...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 136
Пол: Мужской
Реальное имя: Александр

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


Цитата(volvo @ 10.01.2006 18:23) *

Shura, а , то просто
SetWriteMode(XORPut); 
{ и в цикле }
ShowAuto(X, Y); { <-- Рисуем машинку }
Delay(1000);
ShowAuto(X, Y); { <- Стираем ее }
{ Изменяем координаты }



Ну это ведь то, что я и имел ввиду... Или нет?

Цитата

А видеостраницами ты пользоваться, например, в 640*480 со стандартным EGAVGA.BGI вообще не сможешь... Так что еще большой вопрос, чем стОит пользоваться, а чем - нет...


Я и не говорил про использование стандартного EGAVGA.BGI. wink.gif В том-то и дело, что со страницами тут не поработаешь, максимум - GetImage/PutImage, но использовать их без страниц, чтобы сделать что-то красивое, динамичное - супер-изврат. Все идет к тому, что нужно брать другие режимы. Или режим MCGA на крайний случай, или Весу там, например... А в стандартном так и придется, как выше описано.


--------------------
Старайтесь восполнять пробелы в области незнания! ;-D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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