Frage zu DirectInput (C#)

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
dba
Beiträge: 4
Registriert: 02.04.2009, 10:52

Frage zu DirectInput (C#)

Beitrag von dba »

Hallo!

Mein Projekt soll auf das Eventing von Windows Forms verzichten. schön wäre da die verwendung von Direct Input...
Das konkrete problem hierbei ist, dass wenn eine taste beispielsweise eine boolsche variable umsetzt (var = !var),
passiert das leider nicht einmalig, sondern natürlich hunderfach pro sekunde ;)
das heißt, es soll konkret erkannt werden, ob ich eine taste loslasse. Bisher schien es nur möglich, indem ich ich warte, bis die taste nicht mehr in der Liste ist und dann erst die dahinterstehende aktion ausführe. das find ich aber für diesen zweck ziemlich kompliziert.
was sagt ihr? wie würdet ihr das machen?

Liebe Grüße!
Dirk Schulz
Establishment
Beiträge: 130
Registriert: 01.03.2009, 14:21
Alter Benutzername: frittentuete

Re: Frage zu directe Input (C#)

Beitrag von Dirk Schulz »

Hi,

du hast zwei Funktionen: KeyDown und KeyUp

dann brauchst du für jede Taste, die du nur kurz drücken willst, eine variable, die beim ersten Mal drücken auf die Taste auf true gesetzt wird.

PseudoCode:

Code: Alles auswählen

if( KeyUp(B) && tastegedrueckt[B] == true)
tastegedrueckt[B] = false;

if( KeyDown(B) && tastegedrueckt[B] == false)
{
     tastegedrueckt[B] = true;
     ...
}
Sobald du die Taste also einmal gedrückt hast, wird tastegedrueckt auf true gesetzt und die Verzweigung wird nicht mehr ausgeführt.

Hoffe das hilft.

Dirk Schulz
Antworten