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

17.05.2010, 18:28

RawInput API

Hallo,

könnte jemand so nett sein und mir erklären wie man die RawInput API anwendet? (mich bitte nicht mit der MSDN verlinken, das ist mir zu kompleziert)

Ich wollte zuerst DirectInput benutzen, aber da Microsoft selber einem rät dies nicht mehr zu tun wollte ich nun ihren Rat folgen.
Ich versteh aber leider nichts davon :(

Will übrigens nur für Maus und Tastatur.

Danke.

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

2

17.05.2010, 19:27

Was ist dir den genau zu kompliziert? Vielleicht kann man dir ja bei einem Verständnisproblem helfen. In "Using Raw Input" bei der MSDN ist das doch ganz gut erklärt.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

3

17.05.2010, 19:30


könnte jemand so nett sein und mir erklären wie man die RawInput API anwendet? (mich bitte nicht mit der MSDN verlinken, das ist mir zu kompleziert)

Tut mir leid das ich es trotzdem tue, aber die MSDN hat doch sogar ein Codebeispiel, das genau das liefert was du willst: http://msdn.microsoft.com/en-us/library/…v=VS.85%29.aspx

Example #2 zeigt dir wie du dafür sorgst das du Maus und Tastatur Events bekommst, und dadrunter die zwei Codeschnipsel zeigen die Eventbehandlung je nachdem ob du gebuffert oder ungebuffert die Daten willst.

4

17.05.2010, 19:32

Ja also ich liste mal auf:

1. Ich bin mir nicht sicher was ich für Input benutzen soll (DirectInput, RawInput, WM_KEYDOWN usw.)
Ist die RawInput API denn am besten für Tastatur, Maus?

2. Ich wollte es so kapseln, sodass ich nur noch schreiben muss:

C-/C++-Quelltext

1
if( KeyDown( VK_LEFT ) ) { x += 40; }

Aber ich weiß beim besten Willen nicht wie man sowas umsetzen könnte.

3. Wo ist der unterschied zwischen "buffered" und "unbuffered"?

5

17.05.2010, 19:34

Warum bleibst du nicht bei den Standard-Methoden der WinApi?
Wie im anderen Thread besprochen?
Das ist, denke ich, für dich erstmal die leichteste Lösung.
fka tm

6

17.05.2010, 19:41

Weil ich gelesen hab, dass Microsoft RawInput empfiehlt (bin leicht beinflussbar).
Und weil ich nicht ganz verstehe wie ich sowas abfagen könnte ohne gleich in der Wndroc rumzufummeln.

Reicht auch

C-/C++-Quelltext

1
if( msg.wParam == VK_LEFT ) { //do something }


oder ist das falsch?

7

17.05.2010, 19:48

Sollte genügen.
Bei WM_KEYDOWN oder WM_KEYUP.


Bei Mausbewegung, Mausklick:

C-/C++-Quelltext

1
2
3
4
5
// WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP...

PT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
fka tm

8

17.05.2010, 20:14

Danke :)

Die Tastatur klappt jetzt bestens.
Muss nur noch die Maus machen.

Werbeanzeige