Problem mit KeyboardInkey()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Problem mit KeyboardInkey()

Beitrag von sen-me »

Mir scheint so als würde dieser auf #PB_Key_Left und so auch reagieren...
Er schreibt bei allen 4 Pfeiltasten eine 2
Wie kann ich das unterbinden? (Hab versucht die Asc von 32 bis 126 nur zu aktzeptieren, klapt auch nit)
Bild
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Schau Dir mal RawKey() an, ich habs jetzt nicht nachkontrolliert, aber das wird wohl die Lösung sein.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

RawKey ist doch ein Console befehl Oo

EDIT:
Alle Tasten geben 2 zurück außer die Buchstaben und Zahlen...
(Sprich Crtl, Pfeiltasten, Alt, Shift, F1, F2, ....)
ESC gibt nen |

Kann ja schlecht jetzt abfragen ob all diese Tasten gedrückt sind oder nicht Oo

Code: Alles auswählen

   #PB_Key_Escape
    #PB_Key_Back
    #PB_Key_Tab
    #PB_Key_LeftBracket
    #PB_Key_RightBracket
    #PB_Key_LeftControl
    #PB_Key_LeftShift
    #PB_Key_RightShift
    #PB_Key_LeftAlt
    #PB_Key_F1
    #PB_Key_F2
    #PB_Key_F3
    #PB_Key_F4
    #PB_Key_F5
    #PB_Key_F6
    #PB_Key_F7
    #PB_Key_F8
    #PB_Key_F9
    #PB_Key_F10
    #PB_Key_F11
    #PB_Key_F12
    #PB_Key_NumLock
    #PB_Key_Scroll
    #PB_Key_Add
    #PB_Key_PadEnter
    #PB_Key_RightControl
    #PB_Key_RightAlt
    #PB_Key_Pause
    #PB_Key_Home
    #PB_Key_Up
    #PB_Key_Down
    #PB_Key_Left
    #PB_Key_Right
    #PB_Key_End
    #PB_Key_PageUp
    #PB_Key_PageDown
    #PB_Key_Insert
    #PB_Key_Delete
Die alle bis auf Escape geben 2 zurück...

Er gibt erst die 2 zurück wenn man die Taste wieder los gelassen hat
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

öhm.. willst du den rückgabe-wert interpretieren?

normal sollte ein "#True" ausreichen...

wenn nicht, damit hab ich keine erfahrung, das pressed/still-pressed ist
eigentlich ne API sache, das is schon systemseitig gut ausgelegt....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

Nein, ich will eine Eingabebox machen im Spiel...
Aber weil er Crtl und Alt unw. auch in die Box reinschreibt mit einer 2 ist das ziemlich scheiße
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ne die steuertasten musst du extra prüfen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Äh, ich glaube ihr redet da etwas annander vorbei... vorallem funktioniert doch das Beispiel von KeyboardInkey() einwandfrei?
Oder liege ich da jetzt falsch, Du willst doch nur Zahlen und Buchstaben einegben können?
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

Richtig...
Aber er schreibt wenn ich Alt drücke und loslasse ne 2 rein
Das PB beispiel funktionier hmm aber wie kann es sein das er bei mir das reinschreibt Oo im ganzen Spiel kommt keine 2 vor Oo

EDIT

Code: Alles auswählen

DrawText(menu_items, 200, client_language, $00FFFF)
  ; DrawText(menu_items, 224, Str(client_sound)+"%", $00FFFF)
   DrawText(menu_items, 248, client_user, $00FFFF)
   DrawText(menu_items, 328, server_style, $00FFFF)
  ; DrawText(menu_items, 352, Str(server_turn), $00FFFF)
  ; DrawText(menu_items, 376, Str(server_port), $00FFFF)
Nur so funktioniert es...
Kann es sein das Str() im DrawText Keyboard funktionen durcheinander bringt? Zumindest KeyboardInkey()?

Ohman ich hab keine Ahnung....
im PB Beispiel mit Drawtext und Str darin funktionierts aber trotzdem...
Selbst wenn ich bei meinem Code +"%" mache funktionierts nicht mehr, beim PB Beispiel schon, woran liegt der Dreck...
Irgendeine Funktion muss den doch beeinträchtigen


EDIT

lol das gibts ja nicht

NUR weil ich string = KeyboardInkey() gemacht hab anstatt string + ... Oo
Also das is jan dicker Hund! Das müsste man in die Hilfe schreiben -.-
Kommt nehmlich lustiges bei raus..
Testet mal:

Code: Alles auswählen

If InitSprite() And InitKeyboard() And OpenScreen(800,600,16,"")
    Repeat
      FlipBuffers()
      ClearScreen(RGB(0, 0, 0))
      
      ExamineKeyboard()
      FullText$=""
      FullText$ = KeyboardInkey()  ; fügt das nächste Zeichen zum aktuellen Text (sofern vorhanden) hinzu
      s.s+FullText$
      
      ; Wenn wir die 'Backspace'-Taste drücken, löschen wir das letzte Zeichen
      ;
      If KeyboardReleased(#PB_Key_Back)  
        s = Left(s, Len(s)-1)
      EndIf

      ; Ergebnis darstellen
      ;
      If StartDrawing(ScreenOutput())
        DrawingMode(1)
        FrontColor(RGB(128, 255, 0))
        DrawText(20, 20, "Gib einfach etwas Text ein...:")
        DrawText(20, 40, s)
        StopDrawing()
      EndIf
    Until KeyboardPushed(#PB_Key_Escape)
  EndIf
Gebt als erstes ein Buchstabe oder so ein, dann drückt ne Pfeiltaste oder sonst was (nur keine Bcuhstaben/Zahlen)
Er wiederholt das Zeichen, was ganz am Anfang steht (löscht nochmal gebt andres Zeichen ein am Anfang und drückt wieder eine Pfeiltaste, nun wiederholt e rimmer diese, selbst wenn man zwischendurch was andres drückt an Buchstabe/Zahl) Oo
Bild
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Hmmm, sieht mir schwer nach einem PB-Bug aus. Irgendwie total seltsam.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Pruef doch einfach ob in FullText$ ueberhaupt etwas steht,
wenn nicht gibt es auch nichts zum zusammenfuegen.
Antworten