tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
350
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Hallo
    Ich habe ein Spiel in Arbeit. Das besteht aus Render und Move Funktionen ( bis jetzt )
    In der Move funktion die ungefähr ( bei mir ) 600x die Sekunde aufgerufen wird möchte ich nun eine verzweigung machen die dann reagiert wenn irgendeine Taste der Tastatur gedrückt wurde.
    Also:
    if( tastegedrückt() ) ...
    Ganz wichtig das Programm darf nicht anhalten!
    Ich habe schon mit _kbhit, kbhit, getch, und GetAsyncKeyState versucht leider ohne erfolg.
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    Windows/Linux?
    Winapi-GUI, Konsole, SDL...?
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Windows
    Winapi GUI
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    WM_KEYDOWN und WM_KEYUP in den Eventhandler...
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Ähm ja ok daran habe ich auch schon gedacht. Allerdings wäre das dann auf das ganze spiel bezogen.
    Ich will aber nur in der einen Funktion auf Tasten prüfen.
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  6. #6
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Tastendruck ist eine Windows message, die du als Event im WndProc bekommst und auf die du reagieren kannst.
    Die einzige Möglichkeit mitten in der Verarbeitung von einem anderen Event die Nachrichtenschleife zu prüfen ist PeekMessage().
    Ob zwischen den Nachrichten die da warten auch Tastendrücke sind, und ob die zu deiner Funktion passen musst du dann selber prüfen, aber selbst das geht nur, solange dein Fenster den Focus hat und das Event was du gerade verarbeitest zum selben Prozess gehört.
    In jedem Fall hast du KEINE Chance das Programm dabei nicht anzuhalten, weil eine Anwendung (ohne Threads) nicht mehr als eine Sache auf einmal machen kann.
    Deine Funktion wird inkl. aller PeekMessage() und was immer du sonst in der Funktion anstellst, den gesamten Rest der Anwendung auf Eis legen, bis die Funktion durch ist.
     

  7. #7
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    MSVC++: Was meinst du mit "auf ein Spiel bezogen, aber nur in der Funktion"?
    Die Messages gibts unabhängig vom Spaßfaktor
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  8. #8
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    OK Ich habe es mir jetzt doch noch anderst überlegt
    Ich habe es so gelöst: for schleife und dann GetAsyncKeyState(i); Ich weiß nicht gerade die Beste Lösung aber es Geht
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  9. #9
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    242
    Also das belastet die CPU sicher mehr als WM_KEYDOWN. Aber eine Lösung ist's auch.

    Gruss
    cwriter
     
    Intel inside - Idiot outside :-)

    Ich schreibe in C und bin Anfänger.
    ______________________________

    Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
    Danke

  10. #10
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Naja also bei mir ist 01% CPU Last
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  11. #11
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Der Wert ist alles andere als genau.

    Aber warum verwendest du eigentlich nicht WM_KEYDOWN und -UP?
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  12. #12
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Weil ich irgendwie keine Lust habe in meiner Engine die ganze Nachrichtenfunktion so um zu schreiben das sie mir nur dann werte gibt wenn ich sie brauche Dann schreib ich lieber ne DirectInput Schnittstelle
    MfG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

Ähnliche Themen

  1. Tabindex statt Tab-Taste mit Enter-Taste
    Von tanjahouse im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 19.11.09, 10:06
  2. Multi key Taste abfragen
    Von Snowcrack im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 04.08.08, 10:38
  3. Irgendeine Datei, die bei jedem vorhanden und gleichgroß ist?
    Von multimolti im Forum Microsoft Windows
    Antworten: 1
    Letzter Beitrag: 02.12.07, 12:45
  4. MySQL Abfragen zu Access Abfragen umwandeln?
    Von Falconbase im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 16.04.06, 15:34
  5. Antworten: 1
    Letzter Beitrag: 05.10.04, 21:08