keydown Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

speer

Betreff: keydown Problem

BeitragSo, Dez 06, 2009 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
programmiere gerade an dem Spiel "Vier gewinnt".
Das Problem ist, wenn die Pfeiltaste links oder rechts gedrückt wird, passiert auf dem Bildschirm nicht. Gebe ich nun den Wert "xpos" in der Funktion Stein aus, erscheint immer 1,2,3,4,5,6,7. Das obwohl die Taste definitiv nur 1x gedrückt wurde.
Hab mal den relevanten Code angehängt. Sieht da wer den Bock drin???



Code: [AUSKLAPPEN]
Repeat
; Hauptschleife

 linksrechts()

Until KeyHit(1)


Function Stein(FarbeA, FarbeB, FarbeC, xpos)
      ; Farbe des Spielsteines setzen
         Color FarbeA, FarbeB, FarbeC

      ; Setze Stein an die Spalte definiert durch xpos
         tempa1 = (x1 * xpos) + x1
         Oval tempa1+8, y1-stein_y, stein_x-10, stein_y-10, 1

End Function



Function linksrechts()

      If KeyDown(203)
            
            If pos >= 0
               Stein(0,0,0,pos)
                  If Player = 1
                        Stein(255,0,0,pos)
                     Else
                        Stein(0,255,0,pos)
                  EndIf
               pos = pos - 1
               
            EndIf   
      EndIf
      
      If KeyDown(205)
            If pos < 7
               Stein(0,0,0,pos)
               pos = pos + 1
                  If Player = 1
                        Stein(255,0,0,pos)
                     Else
                        Stein(0,255,0,pos)
                  EndIf

            EndIf
      EndIf
End Function

Tankbuster

BeitragSo, Dez 06, 2009 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sich die x-Position so schnell erhöht, liegt vermutlich an KeyDown.
Wenn deine Schleife 60 mal in der Sekunde durchläuft, wird natürlich auch 60 mal festgestellt, dass die Taste unten ist.
Du solltest vielleicht KeyHit verwenden, oder einen Timer einbaun.


Warum sich auf dem Bildschirm nichts tut, kann ich durch deinen Code auch nicht sagen. Eventuell sind ein paar Variablen wie z.B. x1 nicht global deklariert, aber dazu bräuchte man schon etwas mehr Code....
Twitter
Download Jewel Snake!
Windows|Android
 

speer

BeitragSo, Dez 06, 2009 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Argh, so ein Mist! KeyHit() funktioniert!


Danke Tankbuster Smile, du hast mir den Sonntag gerettet Smile



Speer

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group