Chr$() verbuggt?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: Chr$() verbuggt?

BeitragMo, Okt 11, 2010 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

momentan bastle ich mir eine Input - Funktion,
Code: [AUSKLAPPEN]
Graphics 600, 800, 32, 3

Function InputOnPosition$(x_pos, y_pos)
   
    Locate x_pos, y_pos
    Local Wort$ = ""
   
    Local springen = -20
   
    Repeat
       
        springen = springen + 20
       
        FlushKeys()
       
        WaitKey()
        Wort$ = Wort$ + Chr$(GetKey())
       
        Text x_pos + springen, y_pos, Wort$
       
    Until MouseHit(1) Or KeyHit(28)
   
    Return Wort$
   
End Function

Global Name$ = InputOnPosition(30, 30)

WaitKey()
End


Wenn ich den Code aber ausführe, dann werden nur komische rechtecke gemalt... kann mir jmd sagen wo der Fehler liegt? bin am verzweifeln...
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Mo, Okt 11, 2010 13:48, insgesamt einmal bearbeitet

ToeB

BeitragMo, Okt 11, 2010 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800, 600, 32, 2

Function InputOnPosition$(x_pos, y_pos)
   
    Locate x_pos, y_pos
    Local Wort$ = ""
   
    Local springen = -20
   
    Local times = CreateTimer(60)
   
    Repeat
       
        WaitTimer times
       
       ; springen = springen + 20
       
      g = GetKey()
      If g <> 0 Then
           Wort$ = Wort$ + Chr$(g)
      EndIf
       
        Text x_pos + springen, y_pos, Wort$
      
      Flip 0
      Cls
       
    Until MouseHit(1) Or KeyHit(1)
   
    Return Wort$
   
End Function

Global Name$ = InputOnPosition(30, 30)

WaitKey()
End


Frage : Was sollte das hier :
Code: [AUSKLAPPEN]
 FlushKeys()       
        WaitKey()
        Wort$ = Wort$ + Chr$(GetKey())


?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

CO2

ehemals "SirMO"

BeitragMo, Okt 11, 2010 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
"FlushKeys()" - Löscht alle eingaben der Tastatur
"WaitKey()" - Wartet darauf, das eine Taste gedrückt wird
"Wort$ = Wort$ + Chr$(GetKey()) " - Wenn eine Taste gedrückt wurde, soll der ASCII-Code zurückgegeben werden, in ein Zeichen umgewandelt werden und zum Wort hinzugefügt werden,

Thx für den Code, aber was für einen ASCII-Code haben Tasten wie "Enter", etc.?

mfG,
SirMO
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Eingeproggt

BeitragMo, Okt 11, 2010 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
aber was für einen ASCII-Code haben Tasten wie "Enter", etc.?


Code: [AUSKLAPPEN]
Repeat
      g = GetKey()
      If g <> 0 Then
           Debuglog g
      EndIf
      Delay 10
Forever


Führe es aus und drücke Enter Razz
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ToeB

BeitragMo, Okt 11, 2010 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke SirMo für die erklärung, aber ich weiß was die befehle machen Wink Ich meine was du dir dabei gedacht hast als du sie dort hingeschrieben hast das war mir nicht schlüssig Smile

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Hubsi

BeitragMo, Okt 11, 2010 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
WaitKey gibt bereits den Ascii-Code der gedrückten Taste zurück. Darum gibt GetKey eine 0 zurück und das wird von Chr$ in ein nicht lesbares Zeichen übersetzt. Eben die seltsamen Rechtecke die Du siehst.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

CO2

ehemals "SirMO"

BeitragMo, Okt 11, 2010 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Eingeproggt:

Joa, da kommt das eingegebene + ein Rechteck (unlesbares zeichen)

@ ToeB:

Waitkey() sollte auf die Eingabe des Benutzers warten, und wenn der nun eine Taste drückt, sollte via GetKey() der ASCII-Code ermittelt werden, zum schluss noch mit CHR$() an das bisherige Wort anfügen, fertig (so dachte ich es mir zumindest)

@ Hubsi:

Thx, werd ich ändern Wink
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Eingeproggt

BeitragDi, Okt 12, 2010 0:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du genau den Code ausführst, den ich gepostet hab (der übrigens die GetKey-Abfrage 1:1 von ToeBs Beispiel enthält) dann bekommst du keine unleserliche Rechtecke sondern es würde im Debuglog 13 stehen. Und bei vielen anderen "unleserlichen Zeichen" würdest du ebenfalls deren Wert erhalten.
Natürlich muss man es nicht selber ausprobieren - das war nur zur Veranschaulichung.
Man kann alle Zeichen auch in einer Ascii-Tabelle nachschauen.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Xeres

Moderator

BeitragDi, Okt 12, 2010 1:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch in der OH unter ASCII, gleich neben den Scancodes Wink
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group