2 Keys Down

Status
Niet open voor verdere reacties.

WILLIAMXXX

Terugkerende gebruiker
Lid geworden
29 nov 2006
Berichten
1.246
Hey,

Hoe kijk ik met de if functie of er twee toetsen zijn ingedrukt de keydata gebruik ik bij voorkeur! Iemand hoe dat moet?:thumb:
 
e.Keycode ondersteunt slechts 1 key, maar je kan dit eventueel doen via booleaans waarden bij te houden welke toets ingedrukt.

Code:
bool keyA = false;
        bool keyB = false;

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.A) keyA = true;
            if (e.KeyCode == Keys.B) keyB = true;
            label1.Text = "A:"+keyA.ToString()+" B:"+keyB.ToString();
        }

        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.A) keyA = false;
            if (e.KeyCode == Keys.B) keyB = false;
               label1.Text = "A:"+keyA.ToString()+" B:"+keyB.ToString();
        }
 
*Zucht*

Wat heb je gedaan?
Hoe heb je dit in jouw applicaties ingepast?
Wat werkt er niet?
Wat wil je uiteindelijke precies bereiken?
 
Het doel is dat wanneer er twee toetsen ingedrukt worden een opdracht wordt uitgevoerd...
 
Wel dat doet de code die ik jou heb gegeven precies. In het key down event ga je na of beide keys ingedrukt zijn (beide bools =true) . Is dit zo dan voer je je opdracht uit.
 
Werkt het dan als je twee if's boven elkaar zet en de opdracht eronder?
 
??

De bedoeling is dat je voor elke key die je wilt controleren of die ingedrukt is een globale bool variabele aanmaakt. Als je de knop A dan bijvoorbeeld indrukt zet je die bool op true.(Dit geldt ook voor alle andere keys) In de key up (key loslaten) event ga je dan controleren of je key loslaat waarvan de bool op true staat en deze bool dan op false zetten.

Dit geeft:


Key down
A Down => boolA = true
B Down => boolB = true

if (boolA & boolB) doAction();


Key UP
if(key.... == Keys.A) boolA = false
...
 
Voordat de toets niet meer is ingedrukt is de opdracht al 10x uitgevoerd... 1x is eigenlijk genoeg:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan