Einfache Bewegung B. Kühnast Auf der Rückseite dieser Disk ist ein einfaches, ausbaufähiges Gerüst, daß ein Spielfeld aufbaut und einen Cursor (an Stelle einer Spielfigur) darüber bewegt. DAS HAUPTPROGRAMM --------------------------------------- 10 SCR=DPEEK(88) 20 AX=0:AY=0:X=0:Y=0 30 EXEC BILD 40 XX=DPEEK(SCR+Y*40+X) 50 YY=DPEEK(SCR+(Y+1)*40+X) 60 DPOKE SCR+Y*40+X,32896 70 DPOKE SCR+(Y+1)*40+X,32896 80 EXEC JOYSTICK 90 GOTO 80 --------------------------------------- In Zeile 1 wird die Anfangsadresse des Bildschirms festgestellt. Danach werden die Koordinaten initialisiert. Die Prozedur BILD baut einen simplen Bildschirm auf. In den Zeilen 40 und 50 werden die Daten unter dem Cursor gespeichert. Dazu benutzen wir einen DPEEK-Befehl, um Zeit zu sparen. Die nächsten beiden Zeilen stellen den Cursor dar. Danach wird JOYSTICK, die eigentliche Bewegungs-Routine aufgerufen. DER BILDAUFBAU --------------------------------------- 110 PROC BILD 120 FOR I=0 TO 959 130 POKE SCR+I,RND(1)*128 140 NEXT I 150 ENDPROC --------------------------------------- Um einen Bildschirm zu füllen, werden hier einfach 960 Zeichen (ein Bildschirm voll in Modus 0 oder 12) direkt in den Bildschirmspeicher gePOKEt. DIE BEWEGUNG --------------------------------------- 170 PROC JOYSTICK 180 J=STICK(0) 190 IF J=14 OR J=10 OR J=6 THEN Y=Y-1 200 IF J=13 OR J=9 OR J=5 THEN Y=Y+1 210 IF J=11 OR J=9 OR J=10 THEN X=X-1 220 IF J=7 OR J=6 OR J=5 THEN X=X+1 230 IF X<0 OR X>38 THEN X=AX 240 IF Y<0 OR Y>22 THEN Y=AY 250 IF X<>AX OR Y<>AY 260 DPOKE SCR+AY*40+AX,XX 270 DPOKE SCR+(AY+1)*40+AX,YY 280 XX=DPEEK(SCR+Y*40+X) 290 YY=DPEEK(SCR+(Y+1)*40+X) 300 DPOKE SCR+Y*40+X,32896 310 DPOKE SCR+(Y+1)*40+X,32896 320 ENDIF 330 AX=X:AY=Y 340 ENDPROC --------------------------------------- In Zeile 180 speichern wir die Bewegung in einer Variablen. In den nächsten vier Zeilen werden die Koordinaten entsprechend der Bewegung geändert, dabei werden die diagonalen Richtungen mit abgefragt. Die Zeilen 230 und 240 sorgen dafür, daß die Ränder nicht überschritten werden. War dies nicht der Fall, wird das Bild unter dem Cursor wiederhergestellt (260-270)), das Bild unter den neuen Koordinaten gespeichert (280-290) und der Cursor dargestellt (300-310). Durch die Verwendung der Variablen AX und AY, in denen die alten Koordinaten gespeichert werden, sorgt man dafür, daß eine Bewegung nur durchgeführt wird, wenn der Joystick benutzt wurde. Dadurch wird überflüssiges Flackern vermieden. CU!