Необходимо перемещать прямоугольник ( для примера ) с помощбю клавиш управления курсором как это правильно описываеться? лучше в процедуре иои в самой программе! желательно пример! Спасибо
Лучше всего для перемещения простых фигур пользоваться вот такой структурой:
var
pos_x, pos_y: integer;
size_x, size_y: integer;
...
{ присвоение начальных значений }
pos_x := ...; pos_y := ...;
size_x := ...; size_y := ...;
SetWriteMode(XorPut);
SetColor(White);
Rectangle(pos_x, pos_y, pos_x+size_x, pos_y+size_y);
Case ReadKey Of
{ управляющие клавиши }
#0: Begin
{ скрываем прямоугольник со старыми координатами ... }
Rectangle(pos_x, pos_y, pos_x+size_x, pos_y+size_y);
{ ... в зависимости от нажатой клавиши изменяем координаты ... }
Case ReadKey Of
#72: { Вверх }
dec(pos_y, 5);
#80: { Вниз }
inc(pos_y, 5);
#75: { Влево }
dec(pos_x, 5);
#77: { Вправо }
inc(pos_x, 5);
End;
{ ... и показываем прямоугольник на новых координатах }
Rectangle(pos_x, pos_y, pos_x+size_x, pos_y+size_y);
End; { #0 }
End;
а другие элементарные фигуры перемещать как тогда
А какие фигуры ты считаешь элементарными? Если она может быть отрисована линиями, то точно по такому же принципу: задаешь координаты pos_x и pos_y, и отрисовываешь фигуру используя только эти две координаты (чтобы не менять значения многих переменных в момент нажатия на кнопки управления курсором)...
Если же "элементарные" фигуры НЕ отрисовываются линиями, то используй не XORPut, а обычный CopyPut, и для того, чтобы стереть фигуру, просто рисуй ее цветом фона (GetBkColor)
точно!!!
спасибо!!!