so habe ich nach einer Antwort auf dieses Problem an vielen verschiedenen Orten gesucht, aber ich habe nicht gefunden, dass eine, die für meine Situation funktioniert. Ich entwickle ein Spiel mit MonoGame (Microsoft XNA) und möchte eine Klasse haben, die meine Eingaben verarbeitet. Da XInput nur prüfen kann, ob eine Taste in einem bestimmten Frame nicht aktiv ist, möchte ich eigene Funktionen erstellen, um zu prüfen, ob sie gedrückt, losgelassen oder gehalten wurden.Pass Enum als Argument in einer Funktion
Hier ist mein Problem:
public static void getKeyPress(Enum key)
{
updated = Keyboard.GetState();
if (updated.IsKeyDown(/* what can i put here to have key be the 'Keys' enum */))
{
}
if (updated.IsKeyDown(Keys.Space))
{
}
}
Also, mein Problem ist, dass ich nicht herausfinden kann, wie man den Schlüssel Enum verwenden, die ich als meine Funktion Argument haben. Ich versuche, das Argument für die IsKeyDown-Funktion zu haben, die im XNA-Framework enthalten ist. Die IsKeyDown-Funktion akzeptiert nur etwas von der Keys-Enumeration, die mit dem Framework vorgefertigt ist. Die zweite if-Anweisung zeigt die korrekte Verwendung der Funktion mit Keys.Space. Ich möchte die getKeyPress Funktion Arbeit wie diese haben:
if (getKeyPress(Keys.Backspace))
{
//backspace was pressed
}
Oder dies würde auch funktionieren:
if (getKeyPress(Backspace))
{
//backspace was pressed
}
ich völlig verloren bin, wenn mir jemand dabei helfen könnte heraus, dass würde sehr geschätzt werden.
Methode (Objekt Enum) –
Wenn ich Dich richtig bin zu verstehen, wollen Sie nur in der Lage sein, passieren 'Keys' in Ihre Methode, dann sollten Sie in der Lage sein, dies zu beheben mit nur das Wort zu ändern' Enum' in deiner Signatur zu 'Keys'. Verstehe ich deine Frage richtig? – pstrjds
Ich habe eine Antwort hinzugefügt, aber ich bin ein wenig verwirrt, welche 'Keys' Enumeration Sie verwenden, Sie erwähnen XNA Framework, das, soweit ich weiß, 'Keys.Back' als Wert für Backspace hat (siehe [Dokumentation] (https://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.keys(v=xnagamestudio.40).aspx)) nicht 'Keys.Backspace' – pstrjds