Eingabe
Übersicht

![]() |
regaaBetreff: Eingabe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also...da der Input Befehl nicht so richtig das wahre ist, wollte ich fragen ob es noch eine andere Möglichkeit gibt, als das was ich gemacht habe?
While Not KeyDown(28) If KeyDown(30) letter$="a" else if KeyDown(48) letter$="b" ........bis hin zu z If KeyDown(42) ne$(letter_var)=Upper(letter$) letter_var=letter_var+1 Else ne$(letter_var)=Lower(letter$) letter_var=letter_var+1 FlushKeys EndIf wend wort_ges$=ne$(0)+ne$(1)+ne$(2)+ne$(3)+ne$(4)+ne$(5)+ne$(6)+ne$(7)+ne$(8)+ne$(9)+ne$(10) Weil ich stell fest das man nicht unbedingt schnell tippen darf. :( mfg regaa |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
schau dir mal den befehl "getkey()" in der onlinehilfe an...
sowas dürfte reichen.... (einfach ein ausschnitt, aus einem kleinen guicode ![]() Code: [AUSKLAPPEN] key=GetKey()
If key>31 Then txt$=txt$+Chr(key) If KeyHit(82) Then txt$=txt$+"0" If KeyHit(79) Then txt$=txt$+"1" If KeyHit(80) Then txt$=txt$+"2" If KeyHit(81) Then txt$=txt$+"3" If KeyHit(75) Then txt$=txt$+"4" If KeyHit(76) Then txt$=txt$+"5" If KeyHit(77) Then txt$=txt$+"6" If KeyHit(71) Then txt$=txt$+"7" If KeyHit(72) Then txt$=txt$+"8" If KeyHit(73) Then txt$=txt$+"9" If KeyHit(181) Then txt$=Left(txt$,Len(txt$)-1):txt$=txt$+"/" If KeyHit(83) Then txt$=txt$+"," If KeyHit(14) And Len(txt$)>0 Then txt$=Left(txt$,Len(txt$)-1) |
||
MrKeks.net |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, danke ![]() |
||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das fand ich ja in Quick Basic gut, Da konnte man jede Taste direkt nach dem Buchstaben abfragen. So hätte ich es in QB gemacht.
Code: [AUSKLAPPEN] Taste: A$ = INKEY$ PRINT A$ IF A$="0" THEN END GOTO "Taste" |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich kenne inkey nicht, aber wenn ich dich richtig verstanden habe, dann reicht das:
Code: [AUSKLAPPEN] Function InKey$()
Return Chr$(WaitKey()) End Function (Ungetestet, nur so im forum geschrieben) |
||
MrKeks.net |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal so ne Frage: ist es normal das dieses blitzcc.exe 100% cpu auslastung macht bei nem 2,26er P4? | ||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, hat sich erledigt, suco-x hat mich geholft ->
startzeit=MilliSecs() While MilliSecs()-startzeit<(1000/60) Delay (4) Wend |
||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Inarie
Das ist ja cool. ![]() Code: [AUSKLAPPEN] Graphics 400, 200, 16, 2 AppTitle "Inkey$()" Repeat x = x + 10 If x = 400 Then x = 0: y = y + 10 Text x, y, inkey$() Until KeyHit(1) Function InKey$() Return Chr$(WaitKey()) End Function |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
manchmal liegt die lösung so nahe ![]() Aber ich hab dann doch meine Version genommen aus performance Gründen, kann auch sein das es nur an meinem pc so ist, ka. Auf jeden Fall ist das so das wenn cih n paar mal bissen was gedrückt hab, sleept der pc und dann fängt er erst an die buchstaben zu texten. Hingegen so wie ich das gemacht hab kommt sofort, aber Nachteil ist das man nicht so schnell 2 Buchstaben nacheinander eingeben darf, weil er sonst diese nicht annimmt, aber die meisten können noch nichtmals so schnell tippen ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Code oben hält allerdings das ganze Programm an. Meine Lösung dazu:
Code: [AUSKLAPPEN] If msecs>timeoutinput+500 drawcursor=1-drawcursor:timeoutinput=msecs
If drawcursor Color 192,192,192:Rect 300+(StringWidth(name$)/2)+2,502,2,12,1 eing=GetKey() If eing=8 And Len(name$)>0 Then name$=Left$(name$,Len(name$)-1):eing=0:zaehler=zaehler-1 If StringWidth(name$)>=85 And eing<>13 Then eing=0 If eing=13 eing=0:nameinput=False:x=330:y=272:FlushKeys() If eing>=32 And eing<=122 Or eing=223 name$=name$+Chr$(eing):eing=0:zaehler=zaehler+1 If eing=228 Or eing=196 Or eing=214 Or eing=246 name$=name$+Chr$(eing):eing=0:zaehler=zaehler+1 If eing=220 Or eing=252 Then name$(0)=name$(0)+Chr$(eing):eing=0:zaehler=zaehler+1 Die Variable msecs kannst Du wahlweise gegen MilliSecs() austauschen oder, der Performance zuliebe, zu Beginn der Hauptschleife msecs=MilliSecs() schreiben. Wenn Du die Eingabe auf eine bestimmte Anzahl Zeichen begrenzen willst, ändere einfach das StringWidth(name$)>=85 in Len(name$)=max_anzahl_zeichen. Die Sache mit der Geschwindigkeit liegt vermutlich daran das Dein Proggi im Fenstermodus läuft, dann ist es generell langsamer als im Vollbild. Ist allerdings nur eine Vermutung ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group