APPLICATIONSAIDE A LA CREATION DE JEUX ★ ACB : ARCADE CONSTRUCTION BASIC ★

Spiele konstruieren: Do it yourself mit ACBasic (CPC Magazin)ACB : ARCADE CONSTRUCTION BASIC (CPC Amstrad International)
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

55 neue Befehle machen den CPC 464 erst richtig fit

Jedem, der es leid ist, vorgefertigte Spiele zu kaufen und dann auch noch vor dem Problem zu stehen, wie man diese von Cassette auf Diskette kopiert, sei gleich vorweg das ACBasic (Arcade Construction Basic) empfohlen. Dabei handelt es sich um eine Befehlserweiterung des CPC-464-Basic, die über die In-directions des 464 eingehängt wird, also keine RSX-Erweiterung. Laufwerke von vortex und vor allem die RAM-Karte derselben Firma konnten die Arbeit nicht behindern, aber unterstützen.

Die 55 neuen Befehle beschäftigen sich hauptsächlich mit der Erzeugung und Steuerung von Sprites. Dies sind genau definierte Bildschirmbereiche, deren Breite und Höhe in Pixels gemessen werden. Der Cursor des CPC ist in MODE 2 ganze 8 mal 8 Pixels groß, in MODE 0 ist er physikalisch 32 Punkte breit. Die Höhe beträgt wiederum 8 Pixel. Die Positionierung eines Sprites erfolgt wie bei den Befehlen MOVE, DRAW und PLOT im Schneider-Basic. Die linke, untere Ek-ke des Bildschirms hat dabei die Koordinaten 0,0. Die Sprites lassen sich dann gezielt in 8 Richtungen über den Bildschirm bewegen, und zwar ohne die Zeit des Betrachters mehr als notwendig zu beanspruchen. Da nur in MODE 0 gearbeitet werden kann, mit Ausnahme der Befehle in Tabelle 2, stehen einem somit vertikal 200 und horizontal 160 Punkte zur Verfügung. Allerdings kann ein einzelnes Sprite bis zu 255 Bildpunkte hoch und breit sein. Dann ist jedoch nur ein Ausschnitt von ihm zu sehen. Solche Supersprites lassen sich konkret als bewegter Hintergrund verwenden, wie zum Beispiel die wogende See hinter einem Schiff.

Sprites, die über einen Bildschirmrand hinausbewegt werden, erscheinen am gegenüberliegenden. Dies aber erst, nachdem sie auf der einen Seite völlig verschwunden sind. Spaßige Effekte, wie halbes Männchen am rechten und linken Bildschirmrand, bleiben einem somit, zumindest bei Spritegrößen bis zu 55*99 Punkten, erspart. Dazu ist um den Bildschirm ein fiktiver Rand gezogen, um auch den Hintergrund sauber verschieben zu können. Bewegt sich der Hintergrund zum Beispiel nach links, kann man im nicht sichtbaren rechten Teil schon neue Elemente anfügen, die dann langsam nachrücken.

Ein sehr effektvoller Befehl ist WAY. Damit kann man potentielle Feindsprites auf vorgegebenen Wegen die Landschaft beleben lassen. Das erspart viel Rechenzeit und Kollisionstests, obwohl gerade für letzteres auch ein zeit- und arbeitsschonender Befehl zur Verfügung steht. Auch der Befehl ANIMATE ist eine äußerst nützliche Einrichtung für bewegte Grafik. Mit ihm lassen sich mehrere Sprites zu Bewegungsabläufen zusammenfassen, also alle Phasen einer Schrittbewegung oder der Flug des Phönix in die Asche.

Echte Angriffe der Gegner lassen sich mit SPRGOTO verwirklichen. Ein oder mehrere so aktivierte Sprites werden auf Teufel komm raus versuchen, an das jeweüs zugeordnete Opfer heranzukommen. Dies ist natürlich nur sinnvoll, wenn es sich bei den Verfolgten um vom Spieler oder den Spielern steuerbare Figuren handelt. Die Steuerung wird mit SPRGOBJ oder SPRGOBK (Sprite go by joy/key) ermöglicht. Aber in diesem Falle nützt einem das gar nichts. Die mit SPRGOTO auf die Reise geschickten Sprites folgen unerbittlich in jede Richtung, auch diagonal, zur Not auch noch in den nicht sichtbaren Bildbereich. Damit der Abstand nicht immer gleich bleibt, kann man auch noch die Bewegungsgeschwindigkeiten mit XSTEP und YSTEP erhöhen oder erniedrigen.

Um die wohl zeitaufwendigste Arbeit zu erledigen, nämlich die Sprites zu definieren, gibt es zwei Wege. Beim ersten kann man zwei spezielle Befehle (SPRDEF und SPRDAT) des ACBasic verwenden. Der zweite, durchschaubarere und somit anwenderfreundlichere, ist der mitgelieferte Spritedesigner. Mit ihm lassen sich mit Hilfe von Joystick, Cursortasten, COPY und Zehnerblock doch ganz ansehnliche Gebilde er-tüpfeln, abspeichern, laden und editieren. Und damit man sie auch in seinem Programm verwenden kann, wird eine kleine, in Basic geschriebene Subroutine erzeugt, die die Sprites mit den Befehlen SPRDEF und SPRDAT für die Ewigkeit festhält. Diese Routine kann wiederum ganz einfach mit MERGE an ein Basic-Programm, das unter der Erweiterung laufen soll, angefügt werden. Dazu wird sie auch in dem für MERGE erforderlichen ASCII-Format abgespeichert.

Zusätzlich zu den Der-Bildschirm-lebt-Befehlen gibt es noch einige andere, die auch in MODE 2 arbeiten, weü sie teilweise nichts mit Grafik zu tun haben. Einige von ihnen sind auf den CPC der 6er-Reihe fest installiert. Dazu gehören unter anderem GPEN, GPAPER und GMODE, mit denen der Stift und das Papier des Grafikmodus festgelegt werden können. Mit GMODE kann zwischen Überschreiben, XOR, AND und OR gewählt werden. Was das im einzelnen bedeutet, steht im CPC-Handbuch bei Steuercodes. Dazu kommen noch die Möglichkeiten, Text invers und transparent darzustellen.

Die Möglichkeit der Buchstabendrehung und -Spiegelung ist beinahe schon zu den Gags zu zählen, es sei denn, man benutzt den Befehl SYMBOL, um Minisprites zu kreieren (8*8, 16*8 und 32*8 Zeichenmatrix, je nach MODE).

Ein weiterer Befehl von 664/6128 ist COPYCHR, der im ACBasic als TREAD implementiert ist. Mit ihm lassen sich jetzt Zeichen, die schon auf dem Bildschirm zu sehen sind, wieder in eine Variable einiesen. Sie müssen jedoch in der Symboltabelle des CPCs vorhanden oder mit dem Befehl SYMBOL definiert worden sein. Vor dem Einlesen muß der Cursor mit dem Befehl LOCATE positioniert werden.

Wer ein Anhänger des schnellen Bildwechsels ist, kommt auch auf seine Kosten. Mit dem Befehl BANK kann man zwischen den RAM-Bereichen 4000h und C000h umschalten. Während also mit BANK 0 der Bereich 4000h bis 7FFFh zu sehen ist, kann man mit DRAWON 1 den Bildschirmbereich C000h bis FFFFh als Ausgabekanal benutzen. Sobald das Bild gezeichnet ist, schaltet man mit BANK 1 auf den oberen Bereich um. Das neue Bild wird dann sofort als Ganzes dargestellt.

Sonstige ACBasic-Befehle

  • GPEN f Grafik-Stiftfarbe setzen
  • GPAPER f Grafik-Papierfarbe setzen
  • GMODE m Grafikmodus wählen
  • GINV Grafik invertieren
  • TINV Text invertieren
  • TRANSON Text transparent
  • TRANSOFF Text überschreiben
  • SYMTURN n Zeichen drehen
  • SYMMIRROR n Zeichen spiegeln TREADv Zeichen vom Schirm lesen
  • DRAWON n Zu beschreibende Bank wählen
  • BANK n Bildschirmbank darstellen
  • WAITKEY Auf Tastatureingabe warten
  • SHIFTON CAPS LOCK einschalten
  • SHIFTOFF CAPS LOCK ausschalten
  • HDWEHV n1,n2,p n2=Hardwarehüllkurve
  • XCALL hl,de,bc,a,adr Maschinenprogramm aufrufen
  • KEYCLEAR Tastaturpufferlöschen

Eine echte Spezialität ist der Befehl zum Programmieren des Soundchips, der sich ja in Form eines AY-3-8912 im CPC befindet. Man kann so ganz leicht über 8 der dort fest eingebauten Hüllkurven verfügen. Dadurch stehen einem schon ganz ordentliche Soundeffekte ohne große Klimmzüge zur Verfügung.

Auch an die Tastatur wurde gedacht. Der Befehl CLEAR KEY der CPC-6er-Reihe wurde übernommen. Sicherheitsabfragen werden damit noch sicherer. Bisher wurden diese gelegentlich einfach übergangen, da man die erforderliche Taste schon gedrückt hatte, bevor überhaupt nach ihr gefragt wurde. Jetzt kann man vor Ausgabe der Meldung den Tastaturpuffer löschen.

Neu ist auch das An- und Abschalten von CAPS LOCK aus einem Programm heraus. Programme sollen einem ja Routine-Handlungen abnehmen. Die Funktion WAIT KEY ist etwas mager ausgefallen: die gedrückte Taste wird nämlich nicht in einer Variablen zurückgemeldet. Man kann also nicht auf einfache Weise erfahren, welche Taste gedrückt wurde. Aber das ist auch fast der einzige Schwachpunkt des ACBasic.

Zu guter Letzt gibt es noch für die Assemblerfreaks einen XCALL, mit dem die Register AF bis HL gefüllt werden können und die Routine (angesprun-gen?) aufgerufen wird. Dann, aber erst dann, ist die Ideenvielfalt von ACBasic erschöpft und die des Anwenders gefordert.

Wer schon Basic-Kenntnisse besitzt, dürfte mit der Handhabung dieses Programms keine Schwierigkeiten haben, da es sich nahtlos ins Locomotive-Basic einfügt und alle Befehle im Handbuch mit kleinen Beispielen veranschaulicht sind. Dennoch wäre unbedingt noch ein kleiner Anhang wünschenswert, in dem die Nutzung der ACBasic-Routinen aus Maschinenprogrammen heraus zumindest andeutungsweise erwähnt wird. Die Anhänger des Maschinencodes gehören inzwischen wirklich keiner ausgeflippten Minderheit mehr an und wären sicher dankbar, da es die langwierige Sucherei mit dem Disassembler abkürzen würde. Daß die Programmknackerei nicht verhindert werden kann, wurde vom Vertreiber schon berücksichtigt. Eine Kopiererlaubnis, um die mit ACBasic konstruierten Spiele auch verkaufen zu können, fehlt aber noch.

ACBasic-Befehle

  • BLOCK Sprite löscht Hintergrund
  • INFRONT Sprite auf Hintergrund
  • BEHIND Hintergrund vor Sprite
  • SMOVE s,z Spritecursor setzen
  • XSTEP n horizontale Schrittweite
  • YSTEP n vertikale Schrittweite
  • ANIMATE #n,Liste Sprites zusammenfassen
  • WAY n,Liste Einen Weg definieren
  • SPRON n Ern Sprite einschalten
  • SPROFF n Ern Sprite ausschalten 
  • SPRGOB W n, Wegnr. Sprite auf einen Weg schicken
  • SPRGOBJ n Sprite n reagiert auf Joystick
  • SPRGOBK n Sprite n reagiert auf Tastatur
  • SPRGOTO n1 ,n2 Sprite 1 verfolgt Sprite 2
  • SPRCHCHANGE n1,n2 Sprite 1 mit 2 vertauschen
  • SPRREAD s,z,b,h Sprite vom Bildschirm lesen
  • SPRDEF n,b,h Spritenummer, Breite, Höhe setzen
  • SPRDAT Liste Spritepunkte setzen (SYMBOL)
  • GETX n,v Spaltennummer lesen
  • GETY n,v Zeilennummer lesen
  • GETXW n,v Spritebreite lesen
  • GETYW n,v Spritehöhe lesen
  • SPRKOLL v,n,liste Auf Kollision prüfen
  • MIRRORV n Sprite vertikal spiegeln
  • MIRRORH n Sprite horizontal spiegeln
  • SPRERA n Sprite im RAM löschen
  • SPRRESET Alle Sprites löschen
  • SETKEY l,r,o,u,f Tastatur definieren
  • ON FIRE GOTO zn Programmverzweigung
  • ON FIRE GOSUB zn Programmverzweigung
  • SCRREAD s,z,b,h,f, v Pixels einer Farbe zählen
  • SCRERA s,z,b,h,f Pixels einer Farbe löschen
  • SCREEN b1 ,h1 ,b2,h2 Hintergrund gestalten
  • SCRDAT Liste Hintergrunddaten
  • MONON Ursprüngliche Farben
  • MONOFF Alle Farben auf einen Wert

Bei aller Begeisterung darf jedoch eines nicht vergessen werden: Das eigentliche Programmieren nimmt einem ACBasic nicht ab. Also, kaufen und ab geht die Post mit 1000 Sprites und spitzen Schreien, das ist nicht möglich. Ein Programm will erst einmal geschrieben und die Sprites müssen entworfen sein. Wer aber glaubt, mit Basic zurechtzukommen, sollte mit der Erweiterung eher seinen Spaß als Schwierigkeiten haben.

H. H. Fischer ,CPC Magazin

★ PUBLISHER: Peter West Records
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ TAG: /RSX/
★ LICENCE: COMMERCIALE
★ AUTHOR: Peter West

★ AMSTRAD CPC ★ DOWNLOAD ★

Advert/Publicité:
» ACB-Arcade  Construction  Basic    GERMANDATE: 2015-01-08
DL: 131 fois
TYPE: image
SIZE: 74Ko

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Arcade Game Designer
» Applications » Text Adventure Write
» Applications » P.A.W.S - Professional Adventure Writing System
» Applications » Bonzo's Big Batch
» Applications » DAAD Adventure Writer
» Applications » ADLAN: ADventure LANguage

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop
Page créée en 197 millisecondes et consultée 1028 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.