Создание персонажа и его движение с помощью стрелок - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

У меня есть кружочек
И да он влюблён (: Вопрос: Как сделать так,что-бы при нажатии на нужные кнопки,он менял траекторию в пикселях. Например: нажали стрелку вверх и кружок пошёл на 10 пикселей в верх .

другими словами было

а стало

Решение задачи: «Создание персонажа и его движение с помощью стрелок»

textual
Листинг программы
uses ABCObjects,GraphABC;
var 
  r: RectangleABC; 
  c: CircleABC;
 
procedure ThreadProc;
begin
  while true do
  begin
    c.Move;
    Sleep(15);
  end;
end;
 
procedure KeyDown(key: integer);
begin
  case key of
    VK_Up: c.dy := -10;
    VK_Down: c.dy := 10;
    VK_Left: c.dx := -10;
    VK_Right: c.dx := 10;
  end;
end;
 
procedure KeyUp(Key: integer);
begin
  case key of
    VK_Up, VK_Down: c.dy := 0;
    VK_Left, VK_Right: c.dx := 0;
  end;
end;
 
begin
  c := new CircleABC(324,230,200,clMoneyGreen); 
  c.Text := 'Can you love me?';
  
  //Присваиваем обработчикам события
  OnKeyDown := KeyDown;  //Когда нажали клавишу
  OnKeyUp := KeyUp;  //Когда отпустили клавишу  
  
  //По сути - таймер
  Var t := new System.Threading.Thread(ThreadProc);
  t.Start;
end.

Объяснение кода листинга программы

  1. Объявлены переменные r и c типа RectangleABC и CircleABC соответственно.
  2. Создана процедура ThreadProc, которая будет выполнять цикл движения персонажа.
  3. В цикле while true do выполняется движение персонажа (переменная c) с помощью метода Move и задержка в 15 миллисекунд с помощью функции Sleep.
  4. Создана процедура KeyDown, которая изменяет скорость движения персонажа по оси X и Y в зависимости от нажатой клавиши.
  5. Создана процедура KeyUp, которая изменяет скорость движения персонажа по оси X и Y в зависимости от отпущенной клавиши.
  6. Создана новая переменная c типа CircleABC с заданными параметрами (324,230,200,clMoneyGreen).
  7. Текст c устанавливается на 'Can you love me?'.
  8. Обработчики событий OnKeyDown и OnKeyUp присваиваются соответственно процедурам KeyDown и KeyUp.
  9. Создается новый поток (t) для выполнения процедуры ThreadProc.
  10. Поток (t) запускается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы