Das sind alleine 8 IF/THENś nur für die Richtungsabfrage. Eine neunte käme hinzu für den Feuerknopf.
Hi. Als Alternative würde ich folgendes vorschlagen:
Die Portafrage mit J=JOY(1) gibt Werte von 1 bis 8 bzw. 128 für den Feuerknopf.
D.h. ich hol mir die Werte exklusive dem Feuerknopf mit J AND 15 (dadurch fällt das 128 weg)
Dann bereiten wir 2 Arrays vor, zum Beispiel
DIM CX(8) mit den Werten 0,1,1,1,0,-1,-1,-1
In der Loop wird dann der Index (J AND 15) aus dem Array gelesen.
D.h. ist der Joystick rechts oben, rechts, rechts unten ergibt das mit Index 1,2 oder 3 ein Delta-X von Plus 1
Ist der Joystick links unten, links, links oben ergibt das mit Index 5,6 oder 7 ein Delta-X von Minus 1
In der Loop muss jetzt das DeltaX nur durch eine Arrayabfrage stattfinden:
dx=CX(J AND 15)
Das dx verändert dann in der Bewegungs-Loop die x-Koordinate der Spielerposition.
Dadurch ersparst du dir alle IF-Abfragen und erhöhst die Geschwindigkeit auf ca. das 2,5-fache