Space Patrol von Rainer Kappler (Masterware Entertainment)
für Commodore VC-20 Grundversion

Februar 2018

---------------------------------------------


Programm laden mit WinVice (VC-20 Emulator xvic):

Einstellungen -> VIC20-Einstellungen -> Keine Speichererweiterung

Datei -> Autostart von Disk/Band-Image -> space patrol.prg



Spielbeschreibung:

Auf einem Patrouillenflug im Weltraum kommst du in einen Asteriodensturm. 
Weiche den Asteroiden geschickt aus, während die Geschwindigkeit ständig steigt.
Das Spiel endet, wenn du mit einem Asterioden kollidierst.

Steuerung:

A -> links
D -> rechts

Bei Programmstart und Spielende werden die Punkte angezeigt und mit einem Tastendruck beginnt das Spiel.



Listing:

1 fori=0to23:reada:poke7168+i,a:next:fort=0to7:poke7424+t,0:next:v=36877:gosub3:goto4

2 data56,124,94,126,126,54,28,0,40,254,186,186,146,16,16,0,36,1,144,0,5,160,0,42
3 m=8164:mf=38884:s=7680:sf=38400:b=10:sc=0:poke36869,255:poke36879,8:poke36878,15:y=100:return
4 print"{clr}{rvon}{wht}score:"sc:fori=0to255step.2:pokev,i:next:pokev,0:poke198,0:wait198,1:print"{clr}{wht}":gosub3
5 a=int(rnd(1)*21):pokemf+a,2:pokem+a,0:pokev,255:print:fort=0toy:next:pokesf+b,7:pokes+b,1:pokev,0

6 sc=sc+1:y=y-.1:ify<.1theny=.1

7 ifpeek(s+b+22)=0thenpokes+b,2:pokev,200:fort=15to0step-.1:poke36878,t:next:pokev,0:poke36878,15:goto4
8 ifpeek(197)=17thenb=b-1:ifb<0thenb=0
9 ifpeek(197)=18thenb=b+1:ifb>20thenb=20
10 pokes+b+1,32:pokes+b-1,32:goto5




Programmbeschreibung:

1. Einlesen der Grafikdaten, Variable für Sound festlegen, Sprung nach Zeile 3 und 4.
2. Grafikdaten von Asteroid, Raumschiff und zerstörtem Raumschiff.
3. Variablen für Bildschirmzeile und der Startposition des Raumschiffs, Bildschirmzeile des Asteroiden, Score auf null setzen, Grafikmodus einschalten, Bildschirmfarbe und Lautstärke festlegen, Variable für Geschwindigkeit.
4. Score anzeigen, Soundeffekt, Warten auf Tastendruck, Sprung nach Zeile 3.
5. Asteroid per Zufallsgenerator setzen und anzeigen, Sound, Hardscroll, Schleife für Geschwindigkeit, Raumschiff setzen und anzeigen.
6. Score und Geschwindigkeit erhöhen, Abfragen ob Höchstgeschwindigkeit erreicht, wenn ja dann zurück auf .1 setzen.
7. Kollisionsabfrage, wenn Raumschiff mit Asteroid kollidert, dann zerschelltes Schiff anzeigen und mit Soundeffekt untermalen.
8. Taste "A" abfragen und bei Betätigung das Raumschiff nach links bewegen, Abfrage ob Position kleiner als 0, wenn ja, zurück auf 0 setzen.
9. Taste "D" abfragen und bei Betätigung das Raumschiff nach rechts bewegen, Abfrage ob Position größer als 20, wenn ja, zurück auf 20 setzen.
10. Position plus und minus eins vom Raumschiff löschen, Sprung nach Zeile 5.