Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Hallo,
ich habe ein Beispiel von Marius Andrea, Lesson6, http://cone3d.gamedev.net, nach Delphi portiert. Dabei wurde einiges umstrukturiert, ist aber noch nicht fertig. Da ich es später in in das SDK aufnehmen will, bitte ich euch es mal zu testen. Download liegt unter: http://www.seban.de/download/SideScrollerBin.zip. Ist aber noch nicht fertig. Ein Test unter Linux fehlt noch, kommt aber auch.
Gruß
Thomas
EDIT:
Erster Test unter Linux war erfolgreich, eine Unit muste nur umbenannt werden. Aus mir unbekannten Gründen dauert der Start sehr lange.
Status: 15.09.2005
- Fehler bei Spielende behoben. Meinen Dank an i0n0s.
Status: 29.08.2005
- Mehrere Memory Leaks entfernt
- Code bereinigt
Status: 28.07.2005
- Joystick geht nun auch unter Linx
- Laden von JPGs eingebaut
- Einführung eines Dummy - Joysticks, wenn SDL keinen findet
- Bug behoben, wenn kein Joystick gefunden wurde
Status: 24.07.2005
- Joystick - Support, leider nicht unter Linux, da wird immer ein NIL nach dem Aurfuf von SDL_JoystickOpen(0) zurück gegeben
- Collision auf Pixel - Basis
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Zwar schade, dass es kein OpenGL ist, aber eine nette Idee diesen Port zu machen. Halt uns (zumindest) mich auch künftig auf dem laufenden Bei der nächsten LinuxSDK-Version wird es möglich sein das Sample direkt von Haus aus zu kompilieren. Läuft auch seitweit hier auf einem Fedora Core 4 System. Allerdings kann ich genau wie Du auch dieses merkwürdig langen Start beobachten. Es kann sein, dass ich es mir einbilde, aber bei mir tat sich lange nichts und als ich STRG+C drückte ging er weiter. IMAO kann man dies benutzen um nach zweimaligejn Drücken den Start zu beschleunigen. *kopfschüttelt* Wird wohl meine subjektive Einschätzung sein, mir fiele es schwer zu erklären, was die Ursache sein sollte dafür. Unter Windows startet er sofort?
So... das interessierte mich nun aber auch mal. Vorneweg: Gerade mit SDL unter Linux macht es höllisch Spass ordentlich gebrauch vom guten alten WriteLn zu machen und das Programm richtig geschwätzig zu machen um zu sehen, was es gerade treibt. Schnell war das Problem bei folgenden Aufrüfen gefunden:
Code:
// Now we load in the fonts - a white one and a yellow one
fFont := initFont('data/font');
fYellowFont := initFont('data/font',1,1,0);
Das ist die Bremse, die Du suchst und scheinbar kann man wirklich den Start mit STRG+C beschleunigen. Eine Erklärung habe ich nicht dafür, aber irgend etwas liegt dort scheinbar im argen Keep on good work!
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Die Unit Logger verwende ich mittlerweile zum ausgeben von Statis und Du hast richtig beobachtet, ein zweimaligs STRG+C bringt die Anwendung zum starten. Ich vermute, das es mit der Verwendung einer SScanF - Routine zum einlesen von Werten zu tun hat. Leider bekomme ich es in der FP-IDE nicht zum kompilieren, während es auf der Console ohne Probleme geht.
Gibt es eine Möglichkeit, bei einem Programm, welches in einer Console gestartet wurde, die Ausgabe auf eine bestehende X - Session umzuleiten? Damit könnte ich auf der Console debuggen, während die Ausgabe auf meinem Fernseher erfolgen würde. Mein Linux-Rechner wird als Videorecorder, SAT-Decoder und Spieleconsole (unter XFree) verwendet.
Wenn es unter Linux und Windows funktioniert und ich mit der Struktur zufrieden bin, werde ich versuchen es als OpenGL - Anwendung umzusetzen. Ich wollte erst einmal eine funktionierende Basis haben.
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Ursache für das Warten auf Strg+C ist gefunden. Die Datei font.ini unter data/font besteht nur aus einer Zeile. Irgendwie strauchelt der fpc und erwartet ein LF oder CR/LF bei Read/ReadLn. Da dieses nicht existiert, wartet er endlos. Also einfach die Datei öffnen, ein die Enter-Taste hinter der Zahl betätigen und speichern. Danach hat es bei mir funktioniert. Phobeus, kannst Du das bei Dir testen?
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
So, eine neue Version hoch geladen.
Folgendes wurde geändert:
Joystick - Support, leider nicht unter Linux, da wird immer ein NIL nach dem Aurfuf von SDL_JoystickOpen(0) zurück gegeben. Die Auslenkung eines Analog - Joystick geht in die Geschwindigkeit der Bewegung des Schiffes ein.
Collision auf Pixel - Basis und nicht, wie in dem Beispiel, auf Bounding Rects.
Der Spielablauf wurde leicht geändert. Gegner, die violett gefärbt sind, können sofort abgeschossen werden. Die blauen Gegner brauchen mehrere Treffer. Sobald nur noch ein Treffer benötigt wird, färbt sich der Gegner violett.
Die aktuelle Version liegt unter: http://www.seban.de/download/SideScroller.zip . In der ZIP - Datei sind die Binaries für Linxu und Windows enthalten. Getestet wurd es auf einem Debian 3.1 und Windows XP Home.
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Wieder eine neue Version. Phobeus wies mich darauf hin, das unter Linux ein Exception auftaucht, wenn kein Joystick vorhanden ist. Desweiteren wurde der Donwload von ca. 3MB auf ca. 800KB verkleinert, nachdem dem nun JPG als Hintergrundbild verwendet wird. Nun sind die benötigten DLLs mit im Archiv vorhanden, eine Installation von SDL ist damit nicht mehr notwendig.
Aktuelle Version: http://www.seban.de/download/SideScroller.zip Status: 28.07.2005
- Joystick geht nun auch unter Linx
- Laden von JPGs eingebaut
- Einführung eines Dummy - Joysticks, wenn SDL keinen findet
- Bug behoben, wenn kein Joystick gefunden wurde
Zukünftig soll die Anwendung um ein Menü, Highscore - Anzeige und Optionen für die Steuerung eingebaut werden. Auch ein Level - Konzpet wird dann eingebaut.
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Leider hat sich in die letze Version ein Fehler eingeschlichen. Sobald alle Leben "verbraucht" waren, wurde eine Zugriffsverletzung ausgelöst. Fehler wurde von i0n0s reportet, viele Dank. Download der aktuellen Version, siehe erstes Posting.
Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.