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!
Frage zu DirectInput (C#)
-
- Establishment
- Beiträge: 130
- Registriert: 01.03.2009, 14:21
- Alter Benutzername: frittentuete
Re: Frage zu directe Input (C#)
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:
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
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;
...
}
Hoffe das hilft.
Dirk Schulz