APPLICATIONSPROGRAMMATION ★ CREATOR (CPC AMSTRAD INTERNATIONAL) ★

CREATORCREATOR 2CREATOR 3
★ 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 ★ 

Begegnungen

Serie: Der Weg zum eigenen Rollenspiel

Landschaften, graf ische Bausteine, Städte mit verschiedenen Schachtelungsebenen - Rollenspielerherz, was willst du noch mehr? Ganz einfach: Begegnungen! Mensch, Tier, Freund, Feind, Pläuschchen oder Katastrophe- unser neues Programmodul macht's möglich.

Fleißige Rollenspiel-Gestalter haben mittlen bisher abgedruckten "Creator"-Modulen schon ein recht mächtiges Instrumentarium zur Verfügung. Das letite Heft (6/7'92) brachte "Creator 2" -und damit die Möglichkeit, die Bewegung einer Spielerfigur über ein Areal von der Geländeform abhängig zu machen. Auch die Verschachtelung von Terrain (Landkarte, Stadtansicht, Hausgrundriß, Höhlenplan) ist bereits möglich. Das Programmodul "Creator 3", das wir diesmal präsentieren, fügt zu all diesen Möglichkeiten nun die Individuenverwaltung hinzu. Konnte die Spielerfigur bisher nur allein die Landschaft erkunden, so ist es jetzt möglich, computergesteuerte Lebewesen und Gegenstände ins Spiel zu bringen, zu bewegen und zu kontrollieren. Das neue Modul stellt Routinen bereit, die die Kollision der Spielerfigur mit beliebigen Spielelementen auswerten und mit einer vom Benutzer vorgesehenen Wirkung verknüpfen. Das Programm enthält Beispielbewegungsvarianten für Individuen. Deren grafische Schemata ("Shapes") werden wie gehabt mit dem Ur-"Creator" aus Heft 6/7'92 entworfen und als numerierte Grafikpuzzles in einer ".SPR"-Datei abgespeichert.

Auf der DATABOX zu diesem Heft haben wir eine Demo-Landschaft mit zwei Städten, dem bekannten Keller aus Heft 6/7'92 und insgesamt sechs computergesteuerten Individuen abgespeichert: vier in der ersten Ebene (Landschaft), eins in der zweiten (Stadt) und eins in derdritten (Keller).

Hilfe aus dem Maschinenraum

Das Binärfile "Creator3.Bin" enthält den Maschinenspracheteil des "Creator 3" und wird nach dem Start von "Creator3.Ldr" erzeugt. Es stellt Routinen zum Bildschirmscrollen, zum einfachen Darstellen der Grafikpuzzles und zum maskierten Darstellen bereit. Den Maschinenspracheteil des neuen "Creator"-Moduls haben wir aus dem entsprechenden "Creator 2"-Teil modifiziert. Wen die Änderungen im Assemblercode interessieren, der sei wiederum auf die DATABOX-Disketten verwiesen; dort haben wir die jeweiligen Quell texte abgespeichert. Auch der Beginn des Basic-Programms "Creator3.Bas" dürfte treuen Lesern bekannt vorkommen. Ab Zeile 720 wirdes jedoch interessant: Hier beginnt die eigentliche Individuen Verwaltung. In den sechs DATA-Zeilen 720 bis 770 stehen die Informationen /u den Individuen in dieser Reihenfolge:

DATA S, E, X, Y, T, A, H, Z

Dabei bezeichnet S den Status. Beim Initialisieren isl dieser Werl 1. Wenn S=0 wird, bedeutet dies den Tod des Individuums. Die Ebene, in der das betreffende Individuum auftaucht, wird durch E bestimmt. X und Y bezeichnen als Koordinaten die Position des Individuums. T steht für "Taktik": Hiermit wird dem Individuum eines der zur Verfügung stehenden Verhaltensmuster zugewiesen. A bestimmt die An des Individuums - also die Nummer des Grafikpuzzles, durch welches das beireffende Individuum dargestellt werden soll. Il gibt Auskunft über den Hintergrund. Bei der Initialisierung kann man für H stets 0 einsetzen, da diese Variable während des Programablaufs automatisch mit dem Wert für den ursprünglichen Inhalt der jeweils aktuellen Position gefüllt wird. Z schließlich ist ein allgemeiner Zähler, den man für alle Zwecke mißbrauchen kann. Im abgedruckten Beispiel ist der Status bei der Initialisierung stets 1, weil sich ansonsten keins der vorgesehenen Individuen bewegen würde. Als Ebenen haben wirdie Nummern 1 bis 3 gewählt (1 = Startebene, 2 = die nächste Stadt, 3 = die Stadt am Fluß). Als "Taktik" erscheinen die Werte I bis 4, da wir ja zunächst vier verschiedene Taktiken realisiert haben. Für A tauchen die Werte 31 (Soldat 1), 32 (Soldat 2) und 33 (Feuer) auf. Diese beziehen sich auf die Grafikpuzzles der Test-Landschaft auf der DATABOX-Diskette. Bei Ihren eigenen Landschaften müssen Sie entsprechende Puzzles für die gewünschten Individuen vorsehen und die dazugehörigen Nummern als A-Werte in die genannten DATA-Zeilen eintragen. Individuen müssen übrigens nicht unbedingt Lebewesen sein! Das Beispiel "Feuer" zeigt, daß sich durchaus auch Unbelebtes als "Gegner" eignet. Selbst ein unsichtbares Gegenüber kann seinen Reiz (und Überraschungseffekt) haben.

Die Anzahl der Individuen, die man kontrollieren lassen will, muß mit der Anzahl der Einträge in den DATA-Zei-len ab 720 übereinstimmen. Außerdem muß die Variable 1ND in Zeile 30 auf diese Zahl gesetzt werden. In Zeile 780 beginnt die Kontroll- und Steuerroutine. Zuerst wird geprüft, ob das gerade zu bewegende Individuum bereits tot (=0) ist. Wenn ja, bricht die Routine ab. Als nächstes wird entschieden, ob das Individuum in der aktuellen Ebene bewegt wird. Vielleicht ziehen Sie es vor, die Bewegung eines Individuums unabhängig von der aktuellen Ebene des Spielers zu machen. Dann kann sich etwa ein Wolf auch dann außerhalb der Stadt bewegen, nachdem der Spieler die Stadt betreten hat - die Bewegung des Wolfes geschieht in diesem Fall nur unsichtbar, quasi im Hintergrund. Dazu brauchen Sic lediglich die Zeile 800 wegzulassen. Als nächstes wird abhängig von der Taktiknummer zu den einzelnen Teilroutinen verzweigt. Taktik I (ab Zeile 830) bewirkt, daß das Individuum ein Rechteck abläuft, dessen Anfangspunkt durch die Koordinatenangabe und dessen Seitenschrittlänge durch den Zähler z bestimmt werden (z nennt die Summe aller 4 Seiten). Taktik 2 (ab Zeile 900) veranlaßt das Individuum, der Spielerfigur solange zu folgen, bis es sie erreicht und berührt hat. Taktik 3 (ab Zeile 970) bewirkt eine Zufallsbewegung. Taktik 4 (ab Zeile 1020) sorgt für eine stetige Ausbreitung des Individuums (Beispiel: Feuer, Nebel, Wassermassen usw.) auf zufälliger Basis. Ab Zeile 1160 wird geprüft, ob das Individuum auf seinen neuen Platz "gehen" darf. Wasser-, Felsen-, Gebäudc-felder oder anderen Individuen sind als Zielort tabu. Außerdem prüft das Programm, ob das Individuum gerade im Ausschnitt sichtbar sein muß. Wenn es zwischen einem Individuum und der Spielerfigur zur Kollosion gekommen ist, wird in eine Routine verzweigt, die in Zeile 1330 beginnt. Sie klärt, welches Individuum an der Kollision beteiligt ist und was für eine Aktion als Konsequenz davon auszuführen ist. Hat etwa die Spielerfigurein Feuerfeld berührt, so ist die Figur verbrannt und das Spiel beendet. Berührt sie hingegen eine der Soldatenfiguren, so stirbt diese und verschwindet. Die kurze Routine ab Zeile I430dient noch der Zufallstaktik und bezieht sich auf die Darstellung.

Nun noch ein paar Hinweise zum Einbau eigener Taktiken. Zunächst muß in Zeile 820 an den ON...GOTO-Sprung-befehl die Anfangszeile der Routine angehängt werden. Dann wird in derei-genen Taktikroutine über die Variablen Ix und ly die Position nach dem gewünschten Muster verändert und schließlich zu Zeile 1130 verzweigt, die die Abfragen startet. Die Variablen LX und LY haben wir für den Fall eingeführt, daß das betreffende Individuum die errechneten Zielposition nicht betreten darf oder kann. In diesem Fall braucht man die alten Koordinaten.

Die Speicherreise

Dürfen wir Ihnen dann noch die neuen Variablen im einzelnen vorstellen? Also, da hätten wir im ersten Teil (bis Zeile 720):

  • das wichtige IND, dasdie Anzahl der zu kontrollierenden Individuen angibt,
  • S, E, XK, YK, T, A, H und Z, die bei der Behandlung der Individuen-DA-TAS oben erklärt worden sind,
  • CUR, die momentane Biklschirm-ad resse der S pielerf i g u r,
  • CURGRA, die Grafikadresse der Spielerfigur (um eine neue Grafik zu wählen, brauchen Sic an die Adresse CURGRA nur andere Grafikdaten zu laden),
  • FRITE1, die Adresse der Routine, dieein Puzzle ausgibt, und
  • FRITE, die Adresse der Routine, die ein Puzzle transparent ausgibt (bei Darstellung eines Fahrrads verdecken etwa nur die Rahmenteile und Reifen den Hintergrund, ansonsten bleibt dieser erhalten).
  • Ab Zci le 780 werden dann noch folgende Variablen gebraucht:
  • INDR, die Nummer des aktuell zu bewegenden Individuums,
  • LX und LY, die Koordinaten des gerade aktivierten Individuums, außerdem
  • LNR, L1, L2 und N, temporäre Variablen ohne globalen Bezug oder Wert.

Bitte achten Sie beim Einfügen von DATA-Zeilen darauf, die Anfangszeile bei einer jeden Datei dem Befehl "re-store" in Zeile 30 und in Zeile 50 anzugleichen, wobei die erstgenannte den Anfang derEbenendatei repräsentiert. Was, da fehlt noch etwas? - Richtig, die Dokumentation der Maschinenprogrammaufrufe. Hier ist sie: "Call a17c, SPEI, XAUS" stellt den Geländeausschnitt dar. Dabei markiert SPEI den Anfang der zu zeigenden Geländedaten. Die Ausdehnung in X-Richtung gibt XAUS vor. "Call alec, CUR. CURGRA" stellt das Grafikpuzzle mit der Adresse CURGRA an die Bildschirmadresse CUR mit Hintergrundmaskierung. "Call a 156, CUR. CURGRA" tut das gleiche, jedoch ohne Maskierung. "Call a00a, H, SPEI, XAUS, CUR" scrollt den sichtbaren Bildausschnitt nach rechts. Dabei enthält H den ehemaligen Hintergrund der Figur, SPEI gibt die Adresse des hereinzuscrollen-den Bildteils an, XAUS bestimmt die Ausdehnung der Ebene in X-Richtung und CUR die momentane Bildschirmposition der Spielerfigur. "Call a048, H, SPEI, XAUS, CUR" scrollt dementsprechend den Bildausschnitt nach rechts. "Call a()86, H, SPEI, 0, CURcur" bewirkt die Verschiebung des Ausschnitts nach oben. Die Parameter entsprechen dem horizontalen Scrolling bis auf die Ausdehnung: Hierfür hat die Routine keine Verwendung, es muß aber trotzdem ein Werl dafür übergeben werden. Daher also der Wert Null. "Call a0c4, H,SPEI, 0, CUR" scrollt den Bildausschnitt dann dementsprechend nach unten. Nach so vielen technischen Details sei ein kleiner Ausblick auf die nächste Folge unserer Rollenspiel-Serie erlaubt. Bevor wir uns alle gemeinsam zum großen Final-Spiel versammeln, müssen wir uns noch ein wenig um Spieler und Charaktere kümmern.

Es kommt noch was

Genauer gesagt: Was ist ein Rollenspiel, wenn es nur einen einzigen streitbaren Helden kennt? Wir werden also die Verarbeitung mehrerer Spieler einbauen. Auch die "Konten", die ja fürs Rollenspiel typisch sind, fehlen noch: Lebenskraft, Zielsicherheit, Magiebegabung und wie sie alle heißen. Wenn unsere Spieler dann schließlich auch noch Besitztümer mit sich führen, erwerben und ablegen können, nähert sich die Sache dem Ziel.

SZ, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1992
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTIONS: CPC AMSTRAD INTERNATIONAL 1992 , CPC AMSTRAD INTERNATIONAL 1992
★ AUTHOREN: Ulrich Schmitz & Matthias Fink
★ INFOS: Leider konnten wir aus Plaizgründen die Demonstrationsfelder nicht mit abdrucken. Interessierte können sie jedoch der DATA-BOX zudiesem lieft entnehmen.
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Aucun fichier de disponible:
» Vous avez des fichiers que nous ne possédons pas concernent cette page ?
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » ASSBasic (CPC Amstrad International)
» Applications » Kit Overscan
» Applications » Animez vos Titres (CPC Revue)
» Applications » Superlist (CPC Amstrad International)
» Applications » C.P.C : Comfortable Program for Codeinput (Happy Computer)
» Applications » Evolution
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 504 millisecondes et consultée 3451 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.