Понидилок
Андрей
УЧИМ DXINPUT
ВВЕДЕНИЕ
Я надеюсь ты
уже изучил статью "Учим
DelphiX", т.к. это её
продолжение, относящееся к
компоненту DXInput, ктоторый
работает с устройствами
ввода (клавиатура, мышь и т.д.)
Вот как
найти его на панели DelphiX:
Выбирай
и ставь его на форму,
созданную нами в прошлом
уроке. Поехали!
УРОК
2
Чтобы
понять принцип работы DXInput
и не впадать в его глубь, то
что я расскажу - хватит, мы
будем изучать только
клавиатуру.
Для начала
создадим две переменные X и
Y типа integer. Находим раздел
описания переменных var и
вписываем туда:
var
Form1: TForm1;
X,
Y:Integer;
Хорошо.
Теперь, двойным счелчком
мыши по иконке DXInput на
форме, перед вами появится
окошко настроек:
Тут
настраевается джойстик, но
он нам не нужен. Нажимаем
на закладку Keyboard.
Перед
вами появилось окошко
задания значений клавишам,
т.е. мы задаем нужные нам
клавиши. По-умолчанию
стоят кнопки Up, Down, Left, Right,
Button1, Button2. Вы имеете
возможность изменить их
значения на удобные вам, но
лучше оставить все как
есть. Нам этого вполне
достаточно.
Сделаем так, чтобы наша
надпись Hello World смогла
передвигаться при помощи
клавиш управления
курсором (стрелки).
Выбираем в Object Inspector'енашу
форму - Form1. Ищим событие
(event) OnCreate. Дважды щелкаем
по пустому полю возле него.
В открывшемся окне пишем:
X:=100;
Y:=100;
Мы задали надписи
начальные координаты.
Теперь мы будем их
изменять. Выбираем событие
DXTimer'а OnTimer. До DXDraw.Flip;
пишем:
DXInput1.Update; // обновим
значения DXInput'а
If isUp in
DXInput1.States then Y:=Y-1; // поднимем
If isDown in
DXInput1.States then Y:=Y+1; // опустим
If isLeft in
DXInput1.States then X:=X-1; //сдвинем влево
If isRight in
DXInput1.States then X:=X+1; // сдвинем
вправо
Но
надпись двигаться не будет,
т.к. у неё координаты 30 и 30.
Заменим их на X и Y:
Textout(X,
Y, 'Hello World');
Теперь
запусти и возрадуйся -
надпись движется в любые
стороны. Даже по диагонали.
Можно это было реализовать
с помощью стандартных
функций Delphi? Нет!!! :-)
-
|