Pacman Clone

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Pacman Clone

Beitrag von pluto »

Hallo,
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.
Dateianhänge
data.zip
Grafiken und Mission Dateien
(1.55 MiB) 148-mal heruntergeladen
Bildschirmfoto-Pacman von Michael Springwald Version 1.0 .png
pacman_linux_gtk1.zip
"Pacman Version 1.0 Beta"
Für Linux mit strip und upx Verkleinert
Mit Level Editor
(2.39 MiB) 138-mal heruntergeladen
PacmanWindows.zip
"Pacman Version 1.0 Beta"
Für Windows mit strip und upx Verkleinert
ohne Level Editor
(479.18 KiB) 166-mal heruntergeladen
Zuletzt geändert von pluto am Mo 10. Aug 2009, 22:39, insgesamt 2-mal geändert.
MFG
Michael Springwald

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Pacman Clone

Beitrag von af0815 »

Stells mal in Lazforge rein. Dann wird einfacher mit dem Ansehen/Nachverfolgen.

Monta hilft dir da sicher gerne.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

Währe eine Idee....
MFG
Michael Springwald

Stefan_H
Beiträge: 1
Registriert: Di 28. Apr 2009, 14:02

Re: Pacman Clone

Beitrag von Stefan_H »

Nicht schlecht. einige kleine Bugs, aber sonst nicht schlecht pluto.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

Danke für das Lob. Was genau für Bug's meinst du ? Unter Windows gibt es meine ich noch einige Fehler bei der Transparent.
MFG
Michael Springwald

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Pacman Clone

Beitrag von Targion »

Warum nutzt du nicht mal GTK2 für das Spiel? Für GTK1 muss ich immer extra libs installieren und GTK1 sieht einfach hässlich aus.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

Das Spiel ist schon etwas "älter". Ich habe es noch nicht mit GTk2 Übersetzt. Aber ich kann es mir mal anschauen ob ich es "noch" Kompilieren kann.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

@Targion
Wunsch "erfüllt". Das Spiel und der "Level Editor" sind nun mit GTk2 Kompiliert wurden. Siehe ersten Beitrag letztes Edit.
Eventuell werde ich auch den Soruce-Code hoch laden.

Mir sind noch einige Sachen aufgefallen die noch eingebaut werden sollten. Z.B. eine Missons und Level Auswahl. Eine Grafische. Mal sehen.
Mich hat es erstaunt das ich den Soruce-Code noch kompilieren konnte. Nach einigen kleineren Anpassungen.
MFG
Michael Springwald

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Pacman Clone

Beitrag von Targion »

Super, Danke! (Einer der größten Lazarus-Vorteile ist, dass man fast Widgetset-Unabhängig programmiert)
Allerdings kannn man außer einer Weißen Fläche mit ein paar bunten Quadraten nichts sehen. Ist das bei dir auch so? Der Editor funktioniert.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

Allerdings kannn man außer einer Weißen Fläche mit ein paar bunten Quadraten nichts sehen. Ist das bei dir auch so?

Ja, ist richtig. Schau dir das Bild im ersten Beitrag an. Ich kann nicht so gut Grafiken zeichnen. Theoretisch müssten die Grafiken Austauschbar sein sowie die Größe(aber hier bin ich mir nicht mehr sicher).

Der Editor funktioniert.

Prima. Das ist schonmal das wichtigste.

(Einer der größten Lazarus-Vorteile ist, dass man fast Widgetset-Unabhängig programmiert)

Sieht ganz so aus. Ich nutze nun auch nicht so viel, Komponenten im Spiel. Außer beim Level Editor, natürlich.
MFG
Michael Springwald

Paulifan1000
Beiträge: 42
Registriert: Mo 27. Aug 2012, 20:23
OS, Lazarus, FPC: Windows 10, L 1.4.4 FPC 2.6.4
CPU-Target: 32Bit 64Bit
Wohnort: Hamburg
Kontaktdaten:

Re: Pacman Clone

Beitrag von Paulifan1000 »

Interesse das Spiel auch für Mac zu haben? Wenn du mir den Sourcecode etc schicken kannst hast du das Spiel auch für die armen benachteiligten Macuser :mrgreen:
Sei immer du selbst
Ausser du kannst ein Einhorn sein
Dann sei ein Einhorn

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

Ich frage mich gerade, warum ich "damals" kein Soruce-Code gleich mit hochgeladen habe...
Ich finde ihn gerade so schnell nicht. Aber ich werde ihn hochladen, sobald ich ihn Genfunde habe...

Ich frage mich, ob der Code sich überhaupt auf ein Mac Kompilieren lassen würde... Ich bin jedenfalls gespannt.
MFG
Michael Springwald

Paulifan1000
Beiträge: 42
Registriert: Mo 27. Aug 2012, 20:23
OS, Lazarus, FPC: Windows 10, L 1.4.4 FPC 2.6.4
CPU-Target: 32Bit 64Bit
Wohnort: Hamburg
Kontaktdaten:

Re: Pacman Clone

Beitrag von Paulifan1000 »

pluto hat geschrieben:Ich frage mich, ob der Code sich überhaupt auf ein Mac Kompilieren lassen würde... Ich bin jedenfalls gespannt.


Wenn die Unit Window benutzt wird wage ich es mal zu bezweifeln. Dann müsste ich mit Komoluna ein paar änderungen durchführen die aber das Gameplay nicht beeinträchtigen
Sei immer du selbst
Ausser du kannst ein Einhorn sein
Dann sei ein Einhorn

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

Die Unit Windows unter Linux *G*.... Ne, die nutzte ich nicht.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Pacman Clone

Beitrag von pluto »

Ich habe den Soruce-Code gefunden, ich muss ihn aber selbst komplett Anpassen, so läuft er nicht. Außerdem nutzte ich da noch OpBitMap.... was umzustellen auf TPicture ist leider nicht so einfach. Außerdem, muss ich ihn noch auf die Aktuelle FPC Version Anpassen...

Das wird einige Zeit dauern, oder ich gebe nur DIR den Soruce-Code.... dann kannst du da mal rein schauen. Heute würde ich vieles anders machen, als "damals". Die letzten Änderungen scheinen von 2008 zu sein.
MFG
Michael Springwald

Antworten