Suche GetKey() Ersatz ...

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

bruZard

Betreff: Suche GetKey() Ersatz ...

BeitragDi, Jan 11, 2005 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
... oder etwas ähnliches ...
Sucu-X hat mir empfohlen in einer For ... To Schleife alle möglichen ASCII Codes durchzugehen und per KeyDown() zu testen ob eine dieser Tasten gedrückt wurde ... funktioniert von den Werten her ganz gut, ist aber nicht das was ich will.

Es geht um eine eigene Input-Routine welche den Program-Flow nicht unterbricht und mir fehlt einfach mal eine "welche-Taste-hat-denn-der-User-nun-gedrückt?" Funktion. Auch meine Versuche über StandardIO waren nicht wirklich von Erfolg gekrönt.

Hat jemand von Euch für einen derartigen Fall bereits eine Lösung gefunden oder kennt jemanden der mal von jemandem gehört hat dass dieser jemanden kennt welcher vom seinen Bruder erfahren hat das dieser jemanden kennt der darüber gelesen hat?

Ich brauche gar keine großartigen Quelltexte, einfache Stöße in die richtige Richtung genügen.

P.S.: Bitte nehmt Abstand davon mir KeyDown() empfehlen zu wollen... danke Wink
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

bruZard

BeitragMi, Jan 12, 2005 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Offenbar geht es Euch wie mir und den Usern des engl. Forums ... keiner findet eine wirklich gute Lösung.

Etwas halbgares habe ich dennoch gefunden, es stammt aus dem Sample "BPaint" von Simon Armstrong.
Kleinigkeiten habe ich bereits geändert, für eine voll funktionsfähige Routine fehlt aber sicher noch der eine oder andere Tweak.
Code: [AUSKLAPPEN]

Function GetKey()
   Local i,shft
   If KeyHit(8) Return 8
   If KeyHit(32) Return 32
   If KeyDown(KEY_SHIFT)
      For i=0 To 9
         If KeyHit(48+i)
            Return Asc(Mid$(")!@#$%^&*()",i+1,1))
         EndIf
      Next
      For i=0 To 25
         If KeyHit(65+i)
            Return 65+i
         EndIf
      Next
      If KeyHit(KEY_TILDE) Return Asc("~")
      If KeyHit(KEY_MINUS) Return Asc("_")
      If KeyHit(KEY_EQUALS) Return Asc("+")
      If KeyHit(KEY_OPENBRACKET) Return Asc("{")
      If KeyHit(KEY_CLOSEBRACKET) Return Asc("}")
      If KeyHit(KEY_BACKSLASH) Return Asc("|")
      If KeyHit(KEY_SEMICOLON) Return Asc(":")
      If KeyHit(KEY_QUOTES) Return 34
      If KeyHit(KEY_COMMA) Return Asc("<")
      If KeyHit(KEY_PERIOD) Return Asc(">")
      If KeyHit(KEY_SLASH) Return Asc("?")   
   Else
      For i=0 To 9
         If KeyHit(48+i)
            Return 48+i
         EndIf
      Next
      For i=0 To 25
         If KeyHit(65+i)
            Return 97+i
         EndIf
      Next
      If KeyHit(KEY_TILDE) Return Asc("`")
      If KeyHit(KEY_MINUS) Return Asc("-")
      If KeyHit(KEY_EQUALS) Return Asc("=")
      If KeyHit(KEY_OPENBRACKET) Return Asc("[")
      If KeyHit(KEY_CLOSEBRACKET) Return Asc("]")
      If KeyHit(KEY_BACKSLASH) Return Asc("\")
      If KeyHit(KEY_SEMICOLON) Return Asc(";")
      If KeyHit(KEY_QUOTES) Return Asc("'")
      If KeyHit(KEY_COMMA) Return Asc(",")
      If KeyHit(KEY_PERIOD) Return Asc(".")
      If KeyHit(KEY_SLASH) Return Asc("/")
      If KeyHit(KEY_RETURN) Return 13
   EndIf
End Function
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Suco-X

Betreff: .......

BeitragMo, Feb 07, 2005 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.blitzbasic.com/Comm...opic=43564
Mark hat nun eine Funktion eingebaut. GetChar.
Module Synchen und ab. Auf den ersten Blick scheint das alles Bugfrei und ausgereift zu sein.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Maniac

Betreff: Re: .......

BeitragMi, Feb 09, 2005 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Suco-X hat Folgendes geschrieben:
http://www.blitzbasic.com/Comm...opic=43564
Mark hat nun eine Funktion eingebaut. GetChar.
Module Synchen und ab. Auf den ersten Blick scheint das alles Bugfrei und ausgereift zu sein.
Mfg Suco
Dumdidum C++ lässt grüßen (:
User posted image
^^

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group