|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.05.2011, 20:32 | #1 |
Новичок
Джуниор
Регистрация: 08.05.2011
Сообщений: 2
|
Движение картинки по форме при нажатии клавиши (любой)
Доброго времени суток всем! Недавно у меня появилась такая идея, даже скорее мечта, создать игру типо марио, но очень простенькую без ботов, в которой нужно ловить падающие предметы. Но вот незадача. Попал в ловушку. Обгуглил всё, но ничего ненашёл, из того, что мне нужно. Находил правда подобное, но там при нажатии мышкой на картинку, а мне нужно при нажатии клавиши.
Ближе к делу. В общем, прошу вас помочь с кодом. Я составил простенький код по перемещению картинки по координатам при нажатии стрелочки (-->). Вот собственно и сам код : procedure TForm1.FormCreate(Sender: TObject); begin KeyPreview:=true; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Case Key of VK_RIGHT : image1.left:=+5; end; end; Но дело в том, что при нажатии данной клавиши (-->) картинка перемещается не так, как задумано, на каждые 5 пикселей, а именно на 5-ый пиксель на форме. А мне нужно, чтобы при зажатии стрелочки вправо, картинка перемещалась вправо по координатам до стенки. Очень прошу помоч с кодом Я подозреваю, что без компонента Timer там не обойтись И если не сложно, еще нужен код чтоб при перемещении не только координаты менялись, но и картинка (чтобы происходила анимация) Заранее благодарен Последний раз редактировалось mihaillo; 08.05.2011 в 20:51. |
08.05.2011, 21:39 | #2 |
Ещё не
Форумчанин
Регистрация: 04.01.2010
Сообщений: 517
|
Код:
Воображение важнее, чем знания. (Albert Einstein)
|
08.05.2011, 22:02 | #3 |
Новичок
Джуниор
Регистрация: 08.05.2011
Сообщений: 2
|
Спасибо большое! Всё работает!
Последний раз редактировалось mihaillo; 08.05.2011 в 22:06. |
04.03.2018, 19:18 | #4 |
Заблокирован
Регистрация: 28.02.2018
Сообщений: 2
|
procedure TForm3.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin case key of VK_Left:if Image2.Left>=5 then Image2.Left:=Image2.Left-5; VK_Right:if Image2.Left+Image2.Width+5<=ClientW idth then Image2.Left:=Image2.Left+5; VK_Up:if Image2.Top>=5 then Image2.Top:=Image2.Top-5; VK_Down:if Image2.Top+Image2.Height+5<=ClientH eight then Image2.Top:=Image2.Top+5; end; end; |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как в C# прервать работу цикла при нажатии клавиши | xata1988 | Общие вопросы .NET | 5 | 14.02.2011 14:48 |
Закрытие окна при нажатии опр. клавиши на клавиатуре. | Borgond | Общие вопросы Delphi | 6 | 25.08.2010 01:14 |
завершение цикла при нажатии клавиши | LLIyPI/IK | Общие вопросы C/C++ | 8 | 12.02.2010 13:29 |
Движение картинки по форме | SaiLight | Свободное общение | 1 | 04.06.2009 04:28 |
Событие при нажатии клавиши Enter | Inbox | Общие вопросы Delphi | 4 | 12.06.2007 14:18 |