ich möchte euch heute mal mein Pacman Clone vorstellen was ich schon seit längere Zeit tun möchte.
Dieser Clone Basiert komplett auf Canvas. Und nutzt OpBitMap an einigen Stellen.
Ich hatte als Vorbereitung eine eigne 2D Engine Erstellt mit der es jetzt ganz einfach ist 2D Spiele zu erstellen. Die Engine übernimmt folgende Aufgaben im Moment:
01 - Sprite Verwaltung
02 - Einfache Kollisions Funktionen.
03- Eine Eigene Imageliste die OpBitmap nutzt für das Laden der Bilder.
Ich zeichne nur die Bereiche neu die sich geändert haben. Dadurch steigt die CPU last kaum an.
Natürlich, wenn sehr viele Gegner da sind müssen auch sehr viele Bereiche Neugezeichnet werden.
Den Soruce werde ich noch nicht hochladen, da dieser sehr viele Units benötig, die ich erst in einem Archiv Packen müsste. Wenn Interesse da ist werde ich das natürlich machen.
Im Moment gibt es nur eine Linux Version. Eine Windows Version läuft noch nicht. Auf einem anderen Test Rechner hat er eine Datei nicht gefunden, leider hat mir das Programm nicht verraten welche Datei nicht gefunden wurde.
Es währe Praktisch wenn ihr das Programm in der Console Laufen lässt. Da gibt es einige Ausgaben.
Es gibt zwei Missionen Dateien: Eine von meiner Schwester, eine Von mir.
meine umfasst 21 Levels hat aber 33 Levels in drin. Wegen den Level Editor.
Der erzeugt noch keine Neuen Missionen und Level Einträge.
Wollt ihr eigene Level erstellt solltet ihr eine eigenes Verzeichnis erstellen unter "missionen"
Der Verzeichnis Name ist der Name der mission
Jetzt gibt es eine Besonderheit, es gibt zwei Arten für die Levels einmal können alle Levels in einer Datei sein und einmal in verschiedenen.
Dort erstellt ihr mit einem Text Editor folgende Datei: missionen.txt
Folgender Inhalt währe denkbar:
level01.txt|Level 01|Michael Springwald
level02.txt|Level 02|Michael Springwald
level03.txt|Level 03|Michael Springwald
level04.txt|Level 04|Michael Springwald
level05.txt|Level 05|Michael Springwald
Hier ist jedes Level in einer Eigenen Datei nämlich level01.txt der Rest dürfte klar sein
Ein Level sieht so aus:
Code: Alles auswählen
10:20-60:10-30
22222222222222222222222222222222
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
1 4
33333333333333333333333333333333
Die Größe Darf nicht verändert werden.
in der ersten Zeile steht:
10:20-60:10-30
das bedeutet folgendes:
10 die Anzahl der Gegener die der Reihe nach erstellt werden
20-60 ist die geschwindigkeit wie schnell sich die Gegner erstellen
10-30 ist die Laufgeschwindigkeit der Gegner
Bei der anderen Variante einfach meine Missionen anschauen.
Der Gegner ändert seine Richtung wenn er irgendwo Gegenstößt auch andere Gegner zählen dazu. oder nach einer zufälligen anzahl an schritten.
Bei den Objekten müsst ihr aufpassen:
es gibt Türen drei Arten, alle haben es gemeinsam, wenn die Tür offen ist und ihr euch darunter befindet wenn sie zugeht wird ein Leben abgezogen.
Bei den Wänden gibt es auch drei arten. Also passt auf !
Es gibt Beamer dort könnt ihr euch mit der Leertaste wenn ihr auf einen steht weg "Bemen"
Es gibt noch einige besonderheiten:
Spielt keine leeren Levels da gibt es eine AV
ein Level muss mind. ein Player haben und eine stelle wo die Genger rauß kommen können.
Das Spiel sollte auch unter Windows Laufen. Ich hänge einfach mal eine Windows exe Datei
mit daran. Viel Spaß beim testen.
Wenn ihr mit der Maus auf ein Objekt Klickt kommt ein eigenes Dialog mit einer Kurzen Beschreibung. Es gibt auch noch drei Addons.....
- Unsterblichkeit
- Durch wände gehen
- Gegen "Aufessen"
ein Addon wird zufällig erstellt und ändert nach einige Zeit die Position und sein Typ.
auf der Rechten seite in Blauen Fehld wird die Zeit angezeigt in Sekunden und der Typ.
Alle Addons haben eine bestimmte dauer wo sie aktiv sind.
Das Spiel ist noch in einem "Test Status". Aber es sollte bei euch laufen.
Für den Level Editor braucht ihr schreib Rechte im Pacman Verzeichnis
Alle benötigen Dateien müssen im Pacman Verzeichnis sein wo ihr schreib Rechte braucht.
Für Packman braucht ihr nur Lese Rechte. Erstellt wird NIX auch nicht vom Level Editor der Ändert nur eine Datei erstellt aber wie gesagt keine neuen.
Für Verbesserung Vorschläge bin ich immer offen.
Ihr könnt ein Level beim Programm Start mit angeben. oder auch die Missions Datei dann wird ein Dialog geöffnet.
edit. habe vergessen einige wichtige Dateien mit hochzuladen.
Diese Dateien einfach in eurer Pacman Verzeichnis entpacken.
einige Hintergrund Grafiken sind nicht von mir alle die
017_Liapunov1.jpg bis 017_Liapunov10.jpg sind nicht von mir
pacman.png und pacmang.jpg auch nicht.
Edit02, Montag, der 24. Dezember.2007
mir ist ein kleiner Fehler aufgefallen: pacman lässt sich nicht starten, wenn ich es mit upx Komprimieren. Anscheind wird ein Falscher wert von application.exename zurück geliefert.
im Anhang ist eine Version die ich nicht mit UPX gepackt habe
Unter Wine sind mir einige kleine Fehler in der Windows Version aufgefallen.
Ich hoffe unter einem realen Windows treten diese Fehler nicht auf. die betreffen die Tranzaprent Funktion von der TBitmap
edit:
http://www.delphipraxis.net/post823480.html#823480
Edit03, Montag der 10.August.2008
Da ich "nur" vier Anhänge hoch laden kann, habe ich auf "LazForge" eine GTk2 Variante hoch geladen:
direkter Link:http://forge.lazarusforum.de/attachments/download/42/pacman_gtk2_linux.zip
Ich hoffe das läuft bei euch. Eventuell werde ich auch den Soruce-Code "endlich" hoch laden. Da er ein gutes Beispiel ist für meine "2D Engine". Leider ist er nicht gerade sauber und aufgeräumt.