If ist keine Schleife, sondern eine Bedingung.
erstmal, definiert euch mal lesbar die Hintergrundfarbe.
statt 0+256*0+256*256*0 kann man auch schlich und einfach $000000 schreiben, das ist ebenso ausführlich und besser lesbar.
manche würden jetzt sagen, warum nicht einfach 0,
aber ich schreibe Farben grundsätzlich als sechsstellige Hexadezimals.
übrigens müsst ihr euch auf nem screen nicht an die 216 webfarben halten, ihr könnt alle möglichen 16Mio hinschreiben.
definiert euch am anfang ein paar konstanten:
Code: Alles auswählen
#Farbe_Hintergrund = $0C0603
#Farbe_BallBox = $FFCC33
#Farbe_Waende = $663300
#Farbe_Aussen = $009900
dann könnt ihr auch ganz einfach die Farben mal ändern.
freimachen mit ClearScreen(#Farbe_Hintergrund), und die Farbe der BallBox auch direkt beim darstellen dort angeben,
spart euch das FrontColor wenn ihrs eh nur 1mal benutzen würdet.
Box (Ballx, Bally, 16, 16, #Farbe_BallBox)
den außenrand auch rechts und unten hinmachen....
so jetzt endlich mal zu der Bewegung und Nichtbewegung.
ihr habt bisher
in's selbe If kann auch der check ob's geht:
Code: Alles auswählen
If KeyboardPushed (#PB_Key_Down)
If PunktLU = #Farbe_Hintergrund And PunktRU = #Farbe_Hintergrund
Bally+2
EndIf
EndIf
also, wenn die taste gedrückt wird, checkt ihr, ob die beiden Punkte in Hintergrundfarbe sind,
dann ist da keine Wand, dann kann die BallBox bewegt werden.
PS:
und btw.... du "definierst" die Points nicht,
du fragst die FarbWerte in der Grafik ab und speicherst sie in den Variablen.
diese vier Abfragen müssen immer und immer wieder gemacht werden,
direkt nach dem darstellen der Wände, im selben Start/Stop-Drawing.