Ich mache zwar kein Jump&Run, sondern ein Strategiespiel, aber evtl. ist es doch eine kleine Anregung (auch wenn der Thread schon eine leichte Staubschicht hat
):
Ich habe eine Klasse TGameField implementiert, die ein einzelnes Spielfeld repräsentiert. Dies hat eigene Methoden (Positionsbestimmung, etc.) und mir ein wenig Verwaltung abzunehmen.
Dann kommt die Klasse TGameMap welche ein zweidimensionales Array beinhaltet in dem alle Felder vom Typ TGameField drin sind und die alle übergeordneten Methoden trägt (Mauspositionierung, etc.).
Dekorationen wie Steine und Bäume sind vom Typ TGameObject, Einheiten sind TGameUnits. Für jeden der beiden Klassen habe ich eine von TObjectList abgeleitete passende Liste erstellt. Verwaltet wird das Ganze in TGameMap. Dort werden die Listen instanziiert. Um das Zeichnen der Objekte und Felder (was ist sichtbar? was muss gezeichnet werden?), kümmert sich Andorra selbst. Dazu verwendet Andorra die interne SpriteList. Auf die musste ich aber nie zurückgreifen und dort nie eingreifen.