Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi JoyStick - Position des Sticks "sensibel" abfragen...? (https://www.delphipraxis.net/133469-joystick-position-des-sticks-sensibel-abfragen.html)

LDericher 2. Mai 2009 15:24


JoyStick - Position des Sticks "sensibel" abfragen
 
Also,

Ich brauche eine JoyStick-Unterstützung für mein Programm, wie laut SuFu schon einige vor mir...
Habe mich mal ans MMSystem rangemacht und bin angenehm berrascht von der Einfachheit der Lösung. Hab mir auch gleich mal eine Klasse geschrieben, die alles kann, was ich brauche.

Na ja, FAST alles :D

Problem: Folgendermaßen lädt sich meine Klasse alle Stati von Buttons/Achsen rein:
Delphi-Quellcode:
function GetState(JoyID:Cardinal; Device:TJoyInfoEx; DeviceInfo:TJoyCaps; Mode:integer):TAllState;
begin
if(DeviceInfo.wCaps and JOYCAPS_HASZ) <> 0
  then Device.dwSize := sizeof(TJoyInfoEx);
Device.dwFlags := Mode;
JoygetposEx(JoyID, @Device);
Result.AxisState:=GetAllAxis(Device, DeviceInfo);
Result.ButtonState:=GetAllButtons(Device, DeviceInfo);
end;
Allerdings sind meine Achsenstati immer nur 0, 32267 oder 65535; diese Ergebnisse muss ich dann ja als vollen Ausschlag interpretieren.

Nun hätte ich aber gern eine Lösung, die die Achsen etwas sensibler abfragt, und z.B. das volle Spektrum 0..65535 ausnutzt. wobei die "Grundpositionen" Links, Mitte, Rechts gleichbleiben, oder eben vergleichbar.

(Am Ende will ich die Rückgabewerte auf den Bereich -100..100 begrenzen, sodass ich den Mauszeiger anhand der Fensterbreite und -höhe und des Rückgabewerts setzen kann, den Part übernehme dann aber ich :D)

Wenn irgendwie möglich, will ich auf weitere DLLs/Module in meinem Programm verzichten, lasse mich aber auch umstimmen, falls unmöglich.

BTW: Ich weiß, dass die von mir gewollte Abfrage möglich ist; siehe dazu Systemsteuerung/Gamecontroller: Da wird das Kreuz auch relativ zum Stickausschlag gesetzt.

Falls es Unklarheiten an der Fragestellung geben sollte, postet das als Feedback, damit ich mich genauer ausdrücken kann.

Danke im Voraus,
Euer LDer.

Edit: Zur Belohnung gibts hier dann meine - fertige - Klasse als Open-Source :D!

Mikescher 2. Mai 2009 16:02

Re: JoyStick - Position des Sticks "sensibel" abfr
 
Zitat:

Zitat von Superwinger
(Am Ende will ich die Rückgabewerte auf den Bereich -100..100 begrenzen, sodass ich den Mauszeiger anhand der Fensterbreite und -höhe und des Rückgabewerts setzen kann, den Part übernehme dann aber ich :D)

Ich glaub so was gabs schon mal such mal als Joy2Any, das kannst du vllt als kleine Anregung nehmen :wink:

LDericher 2. Mai 2009 16:10

Re: JoyStick - Position des Sticks "sensibel" abfr
 
Zitat:

Zitat von Mikescher
Zitat:

Zitat von Superwinger
(Am Ende will ich die Rückgabewerte auf den Bereich -100..100 begrenzen, sodass ich den Mauszeiger anhand der Fensterbreite und -höhe und des Rückgabewerts setzen kann, den Part übernehme dann aber ich :D)

Ich glaub so was gabs schon mal such mal als Joy2Any, das kannst du vllt als kleine Anregung nehmen :wink:

Das ist die Grundlage meiner Klasse... :P

LDericher 2. Mai 2009 16:17

Re: JoyStick - Position des Sticks "sensibel" abfr
 
Alles klar, das Problem war hardwarebezogen ;)

LDericher 2. Mai 2009 17:18

Re: JoyStick - Position des Sticks "sensibel" abfr
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie versprochen, hier meine fertige Klasse. (Siehe Anhang)

Alles in einer kleinen Unit!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz