Hi!
Zum Thema Tanzmattenwettbewerb:
Wie kann ich die Eingabe der Tanzmatte so steuern, daß sie nicht extrem schnell in eine Richtung läuft, wenn man mehr als eine halbe Sekunde drauf ist?
Was ich damit meine ist folgendes: Am Keyboard klickt man kurz mal nach links oder rechts und springt ein Feld weiter, doch im nächsten Augenblick hängt man auch schon am Rand. Gibt es irgendeinen Weg, das Ganze zu verlangsamen, sodaß man nur einmal draufdrücken kann und es so nur ein Kästchen springt ohne gleich durch den Bildschirmrand zu knallen???
Ich haben den Code für die Eingabe aus deiner Funktion genommen:
http://www.glbasic.com/forum/viewtopic.php?id=213
GLG
W.
Wenn ich dich richtig verstanden hab, dann soll man die Taste immer wieder drücken müssen.
Das ist ganz einfach. Du läßt eine zweite Variable mitlaufen, die prüft, ob die Taste schon gedrückt wurde.
Im folgenden Beispiel musst du immer wieder die Leertaste drücken um die Box zu bewegen.
Space_Down=FALSE
x=200 //x-Startwert für die Box
//Loop
WHILE TRUE
IF KEY(57)=TRUE AND Space_Down=FALSE
x=x+10
Space_Down=TRUE
ENDIF
IF KEY(57)=FALSE THEN Space_Down=FALSE
FILLRECT x,200,x+20,220,RGB(255,255,255)
SHOWSCREEN
WEND
Kann man wohl noch anders machen. Aber ist schon 00:45 und ich kann kaum noch klar denken.
Musst es halt für die Tasten umändern die du in deinem Programm benutzt.
Ich hoffe das war's was du gesucht hast.
Cheers
ich mach's so:
DIM keydown[8][12] // [spieler][taste]
MatState(mat[])
FOR i=0 TO 11
IF mat[i]=FALSE
keydown[ply][i]=FALSE
ELSE
IF keydown[ply][i]
mat[ply][i]=FALSE
ELSE
keydown[ply][i] = TRUE
ENDIF
ENDIF
(ungeestet, nur schnell ausm Hirn)
Danke für die Tips!
Habe mit für deine Version entschieden, BumbleBee. Die ist im Programm übersichtlicher!
Danke für die Hilfe von euch beiden! :-)
GLG
W.