Помощь - Поиск - Пользователи - Календарь
Полная версия: Клавиатура, прозрачность и др. вопросы
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Vinchkovsky
Первый раз создаю игрушку на Дельфи, и возникло несколько вопросов, с которыми я не встречался прежде:
1) Как сделать обработчик нажатий клавиш? То есть, жму влево- обьект движется влево и т.п.
Использую код типа:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if Key = VK_RIGHT then
SpS1.Left:=Speed.Value+SpS1.Left;
if Key = VK_LEFT then
SpS1.Left:=SpS1.Left-Speed.Value;

end;


c keypress, keyup, keydown, но у меня лишь меняется фокус формы.

2) Как сделать прозрачность некоторых частей рисунков? В общем, есть три варианта:
а) Сделать маску (прочитал в интернете);
б) Анализировать пиксели фона; (сам придумал)
в) Использовать векторную графику; (пишет в книге)
Может есть какой-нибуть более простой способ? Если нет, прошу обьяснить вариант в) (подсказать редактор, нюансы и т.д.)

В чем суть игры: справа - большое окно с фоном, который меняется с уровнями, снизу и сверху - всякие кораблики lol.gif , справа - панель с клавишами управления и панель с настройками.
ОЧень надеюсь на помощь wink.gif
volvo
Цитата
у меня лишь меняется фокус формы.
Form1.KeyPreview, конечно в True не установил? Установи, тогда нажатия клавиш будут обрабатываться... Больше ничего сказать не могу, потому что неизвестно, как именно ты перерисовываешь объект потом...

Цитата
Как сделать прозрачность некоторых частей рисунков?
По-моему, в Drkb было что-то с этим связанное...
Vinchkovsky
Цитата
Form1.KeyPreview, конечно в True не установил? Установи, тогда нажатия клавиш будут обрабатываться... Больше ничего сказать не могу, потому что неизвестно, как именно ты перерисовываешь объект потом...

Спасибо, первый раз работаю с клавиатурой.
Цитата
По-моему, в Drkb было что-то с этим связанное...

Разобрался на примере "Самолет летит по небу"
____________________________________________
Еще вопросик - это фича или глюк : иногда при редактировании кода, когда дописываю дополнительный текст всередине какой-нибудь строки, он не "вставляется", "передвигая" то, что за ним; а "заменяет" тот код, что идет далее. Помогает лишь перезапуск. wink.gif
volvo
Это фича... Чтобы ее отключить, достаточно нажать на кнопку Insert на клавиатуре (т.е. перейти из режима замещения в режим вставки).
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.