Вопрос

Я хотел бы выравнивать объект в x и y, используя мышь, чтобы переместить его в положение. Я могу свернуть решение, используя различные элементы управления (или кнопки), но оно грязно, и я задался вопросом, есть ли управление - например, джойстик - который обеспечивает управление 2 -осевым управлением, используя мышь и стреляет со скоростями, которые варьируются в зависимости от его позиция?

Это было полезно?

Решение

У Афаика Джедаи (Джедай Апилиб?) Тоже был заголовок джойстика. Это винапи, а не com, так что не участвует в TLB

Другие советы

Пытаться Nldjoystick, написанный мной компонент с открытым исходным кодом и основан на Pure Winapi (mmsystem.pas). Это можно загрузить с сервера SVN здесь.

Интерфейс:

public
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;
published
  property AbsCenter;
  property AbsMax;
  property AbsMin;
  property Active default False;
  property Advanced default False;
  property AxisCount;
  property Axises;
  property ButtonCount;
  property HasPOV;
  property ID;
  property OnButtonDown;
  property OnButtonUp;
  property OnMove;
  property OnPOVChanged;
  property PollingInterval default 40;
  property RepeatButtonDelay default 350;
  property RepeatMoveDelay default 350;
  property SuspendScreensaver default False;
  property ThresholdFactor;

Может быть, вы можете сделать что -то подобное самостоятельно.

  1. Возьмите панель и зарегистрируйтесь на Mouse Up, вниз и перемещайте события
  2. На Mousedown установите логический (fbuttondown), чтобы вы знали, что кнопка мыши нажата и сохраняет координаты x и y mousepointer.
  3. На MouseMove проверьте, не работает ли кнопка (fbuttondown) и переместите свой объект. Чем больше ваш мышер перемещается с его сохраненной позиции, тем быстрее вы двигаетесь.
  4. На MouseUp установите fbuttondown в false

Вышеуказанное очень примитивное, но должно работать.

Я погуглил за «джойстик DLL» и нашел бесчисленное количество. Вы, вероятно, можете добавить один из них в свой проект, а затем получить доступ к его C API из Delphi, просто написав заголовок TLIB (или как его называют, давно не делал этого).

Вы можете использовать компоненты Delphix. Они являются обертками для DirectX, и один из них оборачивается вокруг интерфейса Joystick DirectX, насколько я помню. Он заворачивается в стиле Delphi, так что его легко использовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top