Demandion - ein 2D Strategiespiel

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Demandion - ein 2D Strategiespiel (Mehrspielerfähig)

Beitrag von carli »

Also wenn du es dir durch Verallgemeinerung komplizierter machst, machst du eindeutig was falsch.


Mach doch einfach was ich dir sage: Nutze SDL_Surface nicht direkt als Variable, sondern baue dir eine Kapselklasse drumherum, der man dann sagt, an welcher Stelle das Sprite mit welchem Bildausschnitt gezeichnet werden soll.
Das ist kein Mehraufwand, sondern du sparst dir die Arbeit, jedes mal neue Parameter für SDL_BlitSurface zu generieren. Außerdem kann man so das Grafikinterface ganz einfach auswechseln, falls du auf einmal dich doch entscheiden solltest, OpenGL zu nehmen.

Das wichtige ist nicht, dass du OpenGL unbedingt einbaust, sondern dass du dir den Weg nicht verbaust, es später hinzuzufügen.
(du kannst von mir aus für den Gameboy trotzdem die alte Render-Routine drin lassen und den Spieler auswählen lassen.)

Jay
Beiträge: 65
Registriert: Sa 29. Dez 2007, 02:21
OS, Lazarus, FPC: Linux, 0.9.30.4 Beta, FPC 2.6.0
CPU-Target: 32Bit
Kontaktdaten:

Re: Demandion - ein 2D Strategiespiel (Mehrspielerfähig)

Beitrag von Jay »

carli hat geschrieben:Mach doch einfach was ich dir sage: Nutze SDL_Surface nicht direkt als Variable, sondern baue dir eine Kapselklasse drumherum, der man dann sagt, an welcher Stelle das Sprite mit welchem Bildausschnitt gezeichnet werden soll.

Genau das hab ich doch schon lange gemacht?!
Die "Kapselklasse", wie du sie nennst, ist TImageSet. TImageSet stellt alle geladenen Grafiken als ganze Bilder zur Verfügung. Die anderen Klassen (TSpriteSet, TSpriteObject bzw. TAnimationObject) nehmen sich einen definierten Bildausschnitt heraus und zeichnen ihn bei Aufruf der Zeichenfunktion(en) an der gewünschten Stelle in das angegebene SDL_Surface...

Übrigens: falls mal jemand Bock bekommt, an einigen (mitunter sehr guten) Projekten weiterzumachen, einfach mal auf http://files.gediam.de/Projekte/Archiv/ schauen. Vielleicht ist ja was dabei, was euch liegt (u.a. eine OpenGL-basierte, isometrische GameEngine) :wink:

Antworten