Damit ihr schonmal ein wenig mit XML Datei spielen könnt, erkläre ich mal ein paar der Abschnitte darin, anhand eines Beispiels:
Code: Select all
<Object>
<Name>Alien1</Name>
<Sprite>Alien1</Sprite>
<Type>101</Type>
<SubType>0</SubType>
<CollisionCheck>true</CollisionCheck>
<Probability>70</Probability>
<MinSpeed>50</MinSpeed>
<MaxSpeed>150</MaxSpeed>
<Structure>1</Structure>
</Object>
Dieser Block sorgt dafür, dass im Spiel die roten Aliens von oben auftauchen. Als 'Object' bezeichne ich im Spiel alles, was irgendwie durchs Bild fliegt. Rein vom internen Aufbau her, sind sogar die Sterne im Hintergrund solche 'Objects', allerdings habe ich deren Konfiguration nicht in die XML Datei verlegt.
Das Feld 'Name' hat z.Z. keine größere Bedeutung, ausser, dass es uns sagt, was wir da vor uns haben.
Das Feld 'Sprite' dient zur Auswahl des Bildchens. Wenn man anstatt einem statischen bildes lieber eine der Animationen abspielen möchte, tauscht man die ganze Zeile aus:
kommt weg,
dafür setzt man zum Beispiel ein:
Die Namen der Sprites und Animationen sind am Anfang der XML Datei definiert, und entsprechenden Bilddateien zugeordnet worden. Ich denke (hoffe) das ist selbsterklärend .
Die Felder Type und SubType bestimmen, um was für eine Art Object es sich handelt. Type 101 zum Beispiel sind Aliens, Type 102 sind Asteroiden. SubType wird bei Asteroiden dazu benutzt, große und kleine Asteroiden zu bestimmen. Type 102 und SubType 0 ist ein kleiner Asteroid, Type 102 und SubType 100 ein großer, der beim explodieren in zwei kleine zerfällt.
Momentan kennt das Spiel folgende Types und SubTypes:
Types:
Code: Select all
static const int ID_STAR = 100;
static const int ID_ALIEN = 101;
static const int ID_ASTEROID = 102;
static const int ID_PLAYERSHOT = 103;
static const int ID_ALIENSHOT = 104;
static const int ID_EXPLOSION = 105;
static const int ID_PLAYERSHIP = 106;
static const int ID_UPGRADE = 107;
SubTypes:
Code: Select all
static const int ID_UPGRADE_SHIELD1 = 100;
static const int ID_UPGRADE_SHIELD2 = 101;
static const int ID_UPGRADE_SHIELD3 = 102;
static const int ID_UPGRADE_LASER1 = 103;
static const int ID_UPGRADE_LASER2 = 104;
static const int ID_UPGRADE_LASER3 = 105;
static const int ID_ASTEROID_SMALL = 100;
static const int ID_ASTEROID_SMALL = 0;
CollisionCheck: true oder false, aktiviert bzw. deaktiviert die Kollisionsprüfung
Probability: bestimmt, mit welcher Wahrscheinlichkeit ein Object auftaucht. Je kleiner der Wert, desto seltener taucht das Objekt auf. Minimalwert 0, Maximal 1000
MinSpeed, MaxSpeed: Gibt die minimale und die maximale Geschwindigkeit des Objects an. Kann man grob in Pixel/Sekunde übersetzen .....
Structure: Gibt die 'Stärke' des Objektes an. Structure 5 bedeutet zum Beispiel, dass man das Objekt 5 mal treffen muss, bevor es explodiert.
Das ganze System wird sich in den nächsten Tagen deutlich erweitern.