oh das ist genau mein Thema *G*
Für sowas habe ich mir eine eigene 2D Engine geschrieben die Folgendes Tut:
Ein Spiel besteht aus Objekten, ein Objekt ist bei mir ein Sprite.
Jeder Sprite gehört einem SpriteManger an und dieser gehört eine Engine an.
Kennst du dich mit Canvas aus ?
Für so ein spiel würde sich das anbieten, aber du kannst auch DelphiX für den anfangen nehmen...
Wenn du noch nicht so lange bei Delphi bist, währe DelphiX glaube ich am besten, wenn du das nehmen darfst, wenn nicht, musst du Canvas nehmen.
Stichpunkte währen:
BitBlt, CopyRec, Draw, TBitMap.
Damit arbeitet meine Engine.
Im Grunde macht sie nix anders als:
Zuerst wird geschaut, ist schon überhaupt was gesichert wurden ? Wenn ja wieder herstellen.
Dan den Bereich wo die Grafik hin soll in einem Backup Buffer zu sichern.
Dann die eigentliche Grafik Zeichnen.
Im Grunde war das schon alles, aber auf diese art und weise kommt es zu Grafik Fehlern, wenn sich mehrer "Sprite" überlappen, also löse ich bevor ich das neue Bild zeichne ein Event aus was die Engine Auffängt. und ein Rect enthält, die Engine geht jetzt ihre SpriteManger liste durch und veranlässt das alle Sprite neu gezeichnet werden, aber nur wenn sie in diesem Rect passen.
Es werden also nur bereiche neu gezeichnet. Und nicht den Ganzen Bildschrim,
Das Verwende ich bei meinem Pacman Clone an.
Wenn es dir nix ausmacht, deinen Prosssor zu Qulläen, könntest du das Bild auch Ständig neu aufbauen, das Frist aber Geschwindigkeit.
Meine Engine ist jetzt auch für Lazarus geschrieben, sollte aber auch unter Delphi laufen, aber es dürfte nicht so einfach sein, sie einzubinden, ohne Veränderungen, Gerade wegen der eigenen ImageList.
Ich würde dir raten, wenn du es nehmen darfst DelphiX zu nehmen, Das ist zwar veraltet aber es geht leicht, oder die Engine von Igel die soll auch leicht sein.... Aber für "Einsteiger" weis ich es nicht genau.
Aber ein Spandest Thema ist das im Grafik Bereich. Die Kollisions Funktion wird das Problem sein.