/* Dies ist ein Beispiel level.txt Dieses File sollte man in sein Stadtverzeichnis kopieren und entsprechend abaendern. */ /* Die Beschreibung fuer die ersten 3 Werte pro Level: PALETTE 0=blau-gruen 1=gruen 2=blau 3=grau-gruen BACKITEM 0=Rand-kasten 1=Doppelkreuz 2=KleinerKasten 3=GrosserKasten GFX 0=Rechteck 1=kleine Autos 2=Kreise 3=Dreieck 4=Quadrat */ /* Daten fuer den ersten Level */ "Levelname", /* Levelname in Anfuehrungszeichen */ PALETTE, /* Zahl von 0-3, gibt die Farbpalette an */ BACKITEM, /* Zahl von 0-3, gibt die Fuellgrafik an, wo keine Strasse ist */ GFX, /* Zahl von 0-4, gibt die Grafik fuer die Autos an */ /* Jeweils 3 Zahlen fuer eine Schwierigkeitsstufe */ DELAY,RANDOM,TODO, /* easy */ DELAY,RANDOM,TODO, /* medium */ DELAY,RANDOM,TODO, /* hard */ /* DELAY definiert die Frequenz, mit der die neuen Autos erscheinen */ /* 5=sehr schnell, 20=sehr langsam */ /* RANDOM Wahrscheinlichkeit, mit der ein Auto auch wirklich erscheint */ /* 0=erscheint immer, 7=erscheint nicht so oft */ /* Die beiden Werte DELAY und RANDOM geben also an, wie schnell neue */ /* Autos dazu kommen. Kleine Werte machen die Sache schwierig, weil */ /* viele Autos sehr schnell kommen. Groessere Zahlenwerte erleichtern */ /* das Spiel. */ /* TODO ist die Anzahl der Autos, die den Bildschirm verlassen muessen */ /* bevor der blaue Bonusmodus beginnt */ /* Eine Levelbeschreibung kann dann noch optional */ /* folgende zwei Abschnitte enthalten: */ /* Optionaler Abschnitt zur Definition der Robotanzahl */ robots,3, /* Das Schluesslewort muss genauso 'robots' geschrieben werden. */ /* Die anschliessende Zahl gibt an, wieviel Robots dem Spieler */ /* im Einspielermodus zur Hand gehen beim schalten. */ /* Optionaler Abschnitt zur Definition von Connections */ connect, AMPELNUMMER,RICHTUNG,AMPELNUMMER2, AMPELNUMMER,RICHTUNG,AMPELNUMMER2, endconnect, /* Dieser Abschnitt wird in einem Sonderkapitel ganz unten erlaeutert */ /* Optional kann auch ein neuer Titel angegeben werden */ title "This is my new title and it consists of 3 lines and this is the last line" /* Der definierte Text wird anstatt der "Get Ready" Meldung angezeigt */ /* es koennen nun beliebig viele weitere Leveldefinitionen folgen */ "l1",2,1,4, 17,4,100, 16,4,130, 15,3,160, robots,2, "level2",1,0,2, 16,4,100, 15,5,120, 14,2,240, /* Das Schluesselwort 'end' schliesst die Definitionen ab */ end /* Bei Unklarheiten hilft vielleicht auch ein Blick in die Beispiel-Files RushHour/data/Atlanta/level.txt RushHour/data/Denver/level.txt */ /* Erlaeuterungen zum connect-disconnect Abschnitt ----------------------------------------------- Der Abschnitt beginnt mit dem Schluesselwort 'connect' und endet mit dem Schluesselwort 'endconnect'. Dazwischen werden die sogenannten Connections angegeben. Eine Connection sagt dem Programm nachher, wie der Ampelcursor bewegt werden kann. Bei Maussteuerung ist das nicht wichtig aber bei Cursortastensteuerung kann das Programm nicht immer erkennen, wie die Ampeln verbunden sind. Der Algorithmus erkennt zunaechst nur die Ampeln als verbunden, wenn sie auf gleicher Hoehe liegen (X oder Y Koordinate ist genau gleich). Die Verbindung fuer versetzt liegende Ampeln muss man also zusaeztlich angeben. Ein Beispiel: Nehmen wir an, ein Level haette folgende Ampelkreuzungen: X X X X Die Kreuzungen werden dann von oben nach unten von links nach rechts durchnummeriert: 0 1 2 3 Das Programm erkennt automatisch, dass man von 0 nach 1 und von 0 nach 3 springen kann. Die Verbindung mit Ampel 2 muss aber zusaetzlich definiert werden: connect, 1,d,2, 2,u,1, 3,r,2, 2,l,3, endconnect, Die erste Zeile (1,d,2) besagt, dass man von Ampel 1 nach 2 kommt, wenn man CursorDown drueckt. Die Nummern bezeichnen also die Ampeln, und die Buchstaben haben folgende Bedeutung: u = Up = Cursor hoch d = Down = Cursor runter l = Left = Cursor links r = Right = Cursor rechts Bei groesseren Levels mit vielen Ampeln kann das ganze in Arbeit ausarten. Solange mit Maussteuerung im Einspielermodus gespielt wird, kann man aber auch genauso gut auf den Connect-Abschnitt verzichten. Wenn mir jemand seine Levels schickt, kann ich ja versuchen, etwaig fehlende Connections nachtraeglich zu definieren. Immerhin habe ich inzwischen Uebung :) */