![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
looogle |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем доброго времени суток!
Такая проблема: я использую цикл для смены координат объекта, то есть за один проход цикла перерисовываю круг с помощью DrawCircle на новое место с изменившейся координатой. Запускается цикл нажатием клавиши, соответствующей направлению движения. Вот кусок кода:
procedure KeyDown(Key: integer);
begin
if Key = VK_Enter then start //провека Enter
else begin
LockDrawing;
repeat
Window.Clear;
case Key of
VK_Left: x := x - 1; //влево
VK_Right: x := x + 1; //вправо
VK_Up: y := y + 1; //вверх
VK_Down: y := y - 1; //вниз
VK_Space: break;
end;
DrawCircle(x, y, r);
Redraw;
Sleep(1);
until key = VK_Space; //здесь не уверен, что писать в условии
end;
end;
begin
y := 100; //y
x := 100; //x
r := 10; //радиус
TextOut(250, 200, 'Pess enter to start');
OnKeyDown := KeyDown;
end.
Программы выполняется так: Открывается окно, я нажимаю Enter, потом стрелку (вправо, влево, вверх или вниз) и круг (объект) начинает плавно перерисовываться или двигаться в одну (заданную мно стрелками) сторону. Проблема в том, что при повторном нажатии направление движение не меняется. Я понимаю, что впринципе так и должно быть. Но вот как сделать чтобы напраление менялось я не знаю. Пожалуйста, помогите. ![]() Сообщение отредактировано: looogle - 17.05.2011 23:14 |
![]() ![]() |
![]() |
Текстовая версия | 30.07.2025 22:45 |