Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.05.2010, 12:32

DirectInput - Mouse Position

Moin moin,

ich versuche nun schon seit 2 Tagen verzweifelt rauszufinden wie man die Position
der Window-Maus berechnen kann:(
Will die Position "nur" für 2D haben, aber ist ja auch nicht soo einfach :D

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

2

15.05.2010, 12:40

Mit der WinAPI ist das ganz einfach:
http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx

DirectInput sollte man imho (und laut Microsoft) sowieso nicht (mehr) für Maus und Tastatur verwenden.
Signaturen werden überbewertet

3

15.05.2010, 12:54

Also sollte ich deiner Meinung nach lieber nicht mehr DirectInput benutzen?

EDIT: Weiß denn keiner wie ich die Position der Windowsmaus rausfinden kann? :(
Die ist ja iwie nie an der gleichen Stelle wie die Cursorposition.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ».:!Batzer!:.« (15.05.2010, 14:23)


4

15.05.2010, 14:22

Das würde mich jetzt auch mal interessieren. Was sollte man denn sonst als Alternative benutzen laut Microsoft? Und wie sieht es mit Joysticks, bzw. Controllern aus?
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

5

15.05.2010, 15:25

Laut MS soll man RawInput benutzen, ist wohl schneller bei Maus und Tastatur.
Und bei Controllern soll man glaube ich das Inputsystem für die Xbox nutzen.

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

6

15.05.2010, 15:55

Was meinst du denn mit der "Windows-Maus"? Ich bin davon ausgegangen, dass du den Cursor meinst ?(

Zitat

DirectInput is a set of API calls that abstracts input devices on the system. Internally, DirectInput creates a second thread to read WM_INPUT data, and using the DirectInput APIs will add more overhead than simply reading WM_INPUT directly. DirectInput is only useful for reading data from DirectInput joysticks; however, if you only need to support the Xbox 360 controller for Windows, then use XInput instead. Overall, using DirectInput offers no advantages when reading data from mouse or keyboard devices, and the use of DirectInput in these scenarios is discouraged.

Quelle: http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx

DirectInput sollte man nur noch für Joysticks benutzen.
Signaturen werden überbewertet

7

15.05.2010, 16:09

Sorry dachte zuerst das wäre das gleiche :P (Cursor und WinMaus)

Ne also ich will nur die absolute Position von dem Mauszeiger wissen, damit ich den mit einer eigenen Grafik austauschen kann
oder eben einfach die von Windows benutzen kann.

RawInput scheint mir sehr schwer zu sein:(

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

8

15.05.2010, 17:31

GetCursorPos (siehe meinen ersten Post) liefert dir doch die aktuelle Cursor-Position.
alternativ geht es auch mit WM_MOUSEMOVE
Signaturen werden überbewertet

9

15.05.2010, 17:38

Aber irgendwie ist bei mir die Cursorposition nicht gleich des Mauszeigers.

Eine Frage noch: Wie könnte man das mit dem RawInput so kapseln, dass man nur noch z.B. if( KeyPressen(VK_UP) )
schreiben muss?
Das ist ja alles in der WindowProc.

idontknow

unregistriert

10

15.05.2010, 17:48

Du koenntest z.b. ne Bitmaske mit allen Keys die du abrufen willst erstellen und im WindowProc darauf abfragen ob der entsprechende key gedrückt ist!

Oder, du speicherst jeden Key in eine Liste durch die du im WndProc iterierst und auf nen Tastendruck reagierst und entsprechend eben ne Liste/nen Arrayvoller bools setzen. Wäre jetzt die einfachste Möglichkeit meinerseits :)

Werbeanzeige