tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1008
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Otianer Otianer ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    24
    Hallo leute

    Ich habe folgendes problem undzwar hab ich hier in der suche gesucht und auch was gefunden

    Aber als ich das dann in meinem quelltext genutzt habe hat es nicht funktioniert und ich frage mich warum hab den quellcode der unten steht auch on alle buttons und pannels eingefügt aber es klappt nicht.

    Das Programm soll ein kleines spiel sein man fährt ein auto(button :-D) und muss sich durch ein labyrinth kämpfen das klappt auch alles soweit nur eben die tastatur steuerung nicht

    und ich frag mich warum

    Hier der quellcode:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                if (e.KeyChar == 'W')
                {
                    richtung = "up";
                }
                if (e.KeyChar == 's')
                {
                    richtung = "down";
                }
                if (e.KeyChar == 'a')
                {
                    richtung = "links";
                }
                if (e.KeyChar == 'd')
                {
                    richtung = "rechts";
                }
            }
     

  2. #2
    Hiiims Hiiims ist offline Mitglied
    Registriert seit
    Jun 2007
    Beiträge
    24
    Wenn du Buttons noch auf dem Formular hast geht das normal nicht, weil dann kein KeyPress (...) Ereignis ausgelöst, es sei du hast bei den Buttons Enabeld auf false (allerdings kann man sie dann nicht anklicken...). Mach am besten alle Buttons weg. Du könntest ja dann mit Escape-Taste Pause machen und die Buttons wieder einblenden.

    Noch ein Tipp:
    Nimm lieber zwei Ereignisse mit KeyDown und KeyUp, wo du dann bool Variablen auf true bzw auf false setzt und dann anahand dieser Variabeln bei jeder Gameloop entsprechend die Geschwindigkeit zuweist. Denn bei KeyPress wird nicht andauernd ein Ereigniss ausgelöst, sondern nur wenn du sie grad gedrückt hast, und dann schließlich nach ein paar Sekunden andauernd.
     

  3. #3
    Otianer Otianer ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    24
    Danke dir.
    Jetzt hab ich noch eine frage und zwar wie kann ich die leertaste und enter auslesen denn über KeyChar sind das zuviele zeichen logischerweise sie sollen dann start und stopp sein.
    Geändert von Otianer (07.12.07 um 20:37 Uhr)
     

  4. #4
    Hiiims Hiiims ist offline Mitglied
    Registriert seit
    Jun 2007
    Beiträge
    24
    Wenn du weiterhin KeyPress verwendest, musst du das so schreiben um Enter, usw. einzulesen:

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (e.KeyChar == (char)Keys.Return)
    {
    }
    }

    Aber wenn du Keydown, ... nutzt:
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.Return)
    {
    }
    }
     

Ähnliche Themen

  1. C# - Tastendruck
    Von Duellking im Forum .NET Windows Forms
    Antworten: 17
    Letzter Beitrag: 17.06.11, 11:51
  2. Tastendruck Simulieren
    Von cobfreaky im Forum Visual Basic 6.0
    Antworten: 21
    Letzter Beitrag: 24.11.09, 18:19
  3. Tastendruck umleiten
    Von Billie im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 25.04.08, 14:53
  4. Tastendruck?
    Von teencheng im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 31.01.06, 16:25
  5. Automatischer Tastendruck
    Von aexl im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 14.03.04, 15:06