Einsteiger-Ecke: Comets

center

Kurzes Listing - flottes Spielchen

Eine hervorstechende Eigenschaft der 8-Bit-Ataris ist seit Erscheinen der 400/800-Serie Anfang der 80er Jahre die Player- Missile-Grafik. Hinter dieser Bezeichnung verbirgt sich die Möglichkeit, farbige, bewegliche und in Aussehen und Auflösung frei definierbare Objekte mit relativ geringem Programmieraufwand über Bildschirme einer beliebigen Text- oder Grafikstufe zu legen. Diese Objekte können dann unabhängig vom Hintergrund gehandhabt werden. Findet auf diesem etwa Scrolling statt, so bleibt der gesetzte Player dennoch so lange stur an seinem Platz stehen, bis er gelöscht und seine Horizontal- und Vertikalposition durch Pokes in die dafür zuständigen Speicherstellen neu gesetzt wird.

Diese überlegene Arbeitsweise gibt den kleinen Atari-Computern auch heute noch einen Vorsprung gegenüber ihren Konkurrenten, wenn es um die einfache und schnelle Programmierung von Geschicklichkeits- oder Ballerspielen geht. Das hier abgedruckte Mini-Listing demonstriert dies am Beispiel eines einfachen Tempospiels.

Ein von unten nach oben scrollender, im Textmodus GRAPHICS 0 durch tabulierte Sternchenzeichen (Zeile 5) angedeuteter Korridor wird durchflogen. Der Flugkörper ist ein einfacher Player. Für seinen horizontalen Standort ist die Speicherstelle 53248 zuständig. In Zeile 4 wird der Joystick abgefragt. Wird er nach links gedrückt (Wert: 11), rückt die Playerposition um ein paar Punkte nach links. Entsprechendes gilt für die Bewegung nach rechts. Eine in Zeile 5 generierte Zufallszahl zwischen 13 und 29 bildet dann den Wert für die horizontale Position eines Hindernisses. Hier wurde das Zeichen verwendet, das durch gleichzeitiges Drücken von und entsteht; es läßt sich aber ebensogut jedes andere Zeichen nehmen.

Kollisionen des Flugkörpers mit der Wand oder einem Hindernis werden noch in der gleichen Programmzeile durch Abfragen der Speicherzelle 53252 festgestellt. Sollte eine Kollision erfolgt sein, wird die Programmschleife kein weiteres Mal durchlaufen, sondern zur Zeile 6 weitergegangen. Dort folgt die Auswertung der fliegerischen Leistung: In Zeile 4 wurde die Variable B bei jedem Schleifendurchlauf um 10 erhöht. Ihr Wert entspricht der "Anzahl von Meilen", die der Pilot bis zur Kollision zurücklegen konnte. Nach Drücken einer Taste beginnt das Progamm von vorn.

An dieser Stelle sind nun alle hoffnungsvollen Basic-Einsteiger aufgerufen, dieses Programmgerippe Herzenslust zu erweitern. Was passiert zum Beispiel wenn ein Pilot auch nach dem 10000sten Schleifendurchlauf noch nicht kollidiert ist? Auch eine Rangvergabe - je nach Anzahl der zurückgelegten Meilen von "Eintagsflieger" bis "Hey, bist du es, Han Solo?" wäre machbar. Experimentieren Sie spielerisch dem Programm herum und verlieren Sie dabei Hemmungen gegenüber Peeks und Pokes.

Ekkehard und Jochen Heß

**Comets**

1 DIM A$(14):GRAPHICS 0:POKE 710,0:POKE 752;1:
  FOR I=0 TO 15:POSITION 12,23:? "*  COMETS   *":NEXT I:B=0
2 A$=" HIT BY COMET":P=PEEK(106)-20:POKE 54279,P:
  M=P*256:POKE 559,46:POKE 53277,3:POKE 53256,0:POKE 704,198 
3 FOR Q=M+512 TO M+640:POKE Q,0:NEXT Q :X=100:Y=30:
  POKE M+512+Y,7:POKE M+513+ Y,7:POKE M+514+Y,2 
4 POKE 53278,0:X=X+4*(STICK(0)=7)-4*(STICK(0)=11):
  POKE 53248,X:B=B+10 
5 POSITION 12,23:? "*                     *":POSITION 
  INT(RND(0)*16)+l3,23:? "o": IF 
  PEEK(53252)**4 THEN 4 
6 ? A$;B;"MILES FROM TERRA!":POSITION 14,3:?  
  "  PRESS ANY KEY!",POKE 53248,0,
  OPEN #1,4,0,"KN:GET #1,R:CLOSE #1:RUN

Links

Copyright-Bestimmungen: siehe Über diese Seite
Classic Computer Magazines
[ Join Now | Ring Hub | Random | << Prev | Next >> ]