Другие языки программирования и технологии
Турбо паскаль пожалуйста укажите ошибки
задача точка на экране нажимаем клавишу W точка двигаеться вверх S вниз A влево D в право вот как я началал uses graph, CRT; VAR device, Mode : Integer; x, y : integer; W : Char; procedure lev; begin device:=0; InitGraph(Device, Mode, 'C:\TP\BGI'); repeat x:=320; setcolor(white); putpixel(x, 240, white); setcolor(black); putpixel(x, 240, black); x:=x-2 until x<3; readLN; closeGraph; End; procedure prav; begin device:=0; InitGraph(Device, Mode, 'C:\TP\BGI'); repeat x:=320; setcolor(white); putpixel(x, 240, white); setcolor(black); putpixel(x, 240, black); x:=x+2 until x>640; readLN; closeGraph; End; procedure niz; begin device:=0; InitGraph(Device, Mode, 'C:\TP\BGI'); repeat y:=240; setcolor(white); putpixel(320, y, white); setcolor(black); putpixel(320, y, black); y:=y+2 until y<480; readLN; closeGraph; End; procedure verh; begin device:=0; InitGraph(Device, Mode, 'C:\TP\BGI'); repeat y:=240; setcolor(white); putpixel(320, y, white); setcolor(black); putpixel(320, y, black); y:=y-2 until y<3; readLN; closeGraph; End; begin If readkey:= 'W' then verh ????что дальше и правильно ли я делаю end. укажите на ошибки у меня все открваеться в текстовом режиме как правильно надо написать такую программу кто правильно напишит таму доллар
1) не закрывай в процедурах вывода перемещения точки графический режим. В начале основного тела программы написал InitGraph(Device, Mode, 'C:\TP\BGI'); последей строчкой - closeGraph; Тгда не будешь в текстовом режиме работать и сможешь двигать точку.
2) делай опрос клавиатуры в цикле: если нажата клавиша W - двигаем точку вверх; если нажата клавиша A - двигаем точку влево; и т. д.... условие выхода из цикла - нажатие какой-то клавиши, ESC, например.
Пока исправь эти ошибки - потом видно будет.
2) делай опрос клавиатуры в цикле: если нажата клавиша W - двигаем точку вверх; если нажата клавиша A - двигаем точку влево; и т. д.... условие выхода из цикла - нажатие какой-то клавиши, ESC, например.
Пока исправь эти ошибки - потом видно будет.
Ваша ошибка в том что постоянно реинициализируете графику. Достаточно инициализировать, сделать вечный цикл вроде while(1=1) и по readkey изменять координаты, очищать координаты, и заново рисовать точку.
Думаю, initgraph() стоит вызвать один (!) раз, в теле основной процедуры -- у Вас это в обработиках нажатия кнопок. Там же, в цикле, нужно организовать отслеживание нажатия WASDX (икс - выход из цикла, но это например) . Переменные координаты стоит сделать глобальными, + переменная насколько, d. Функции-обработчики будут выглядеть примерно так:
putpixel( x, y, black )
x := x + d
putpixel( x, y,white )
putpixel( x, y, black )
x := x + d
putpixel( x, y,white )
жуткая вещь ))) к сожалению, сейчас мы еще не проходим графику в паскале, а сам я не заморачивался над этим )) но в бейсике программа такая у меня получилась всего в строчек 20-25 ))
Похожие вопросы
- Турбо-паскаль. Пожалуйста, напишите программный код!...=)
- Какую программу (Паскаль) использовать в учебных целях, чтоб была овместима с файлами от "Турбо Паскаль"? В которых
- 207 ошибка (Турбо паскаль)
- вопрос по турбо паскалю
- Помогите написать 2 програмки на Турбо Паскале.
- Я в турбо паскале запис-ю текст порусски в текстовик, открываю его вне ТП, а там фигня какая-то. Что мне делать?
- Помогите решить, пожалуста (ТУрбо Паскаль)
- Турбо Паскаль
- Помогите решить задачу на Турбо паскале
- Игра в турбо паскале Киньте программу на любую игру в турбо паскале