Kann heute leider nicht dran teilnehmen. Bis nächste Woche
EDIT:
Hab das grundlegende Entity/World system soweit fertig gestellt. Könnt ihr euch in feature/entities anschauen.
Eine kurze Erklärung dazu:
World ist ein großes Objekt, das alle Entities besitzt. Diese Entities können später auch gerne in verschiedene Listen gespeichert werden, sodass z.B. Entities die gedrawed werden müssen eine eigene Liste haben, usw.
Um eine Entity direkt in der Welt zu erzeugen, empfehle ich die template Methode World::createEntity zu nutzen, weil diese alle nötigen Arbeiten zur Erstellung durchführt. Natürlich kann auch direkt über die Konstruktoren erstellt werden, ist aber wieder mehr Schreibarbeit.
Jede Entity besitzt einen Ptr auf ein World Objekt (dieser kann auch ein nullptr sein, wenn sie in keiner world ist). Damit lässt sich aus den Entities heraus auf die darüber liegende Ebene zurückgreifen.
Ein paar Worte zu den Entities:
Eine entitie ist nicht zwingend ein Objekt, dass auf der Map platziert wurde. Es kann auch einfach eine übergeordnete AI für Gegner oder ähnliches sein. Z.b. ein globales System das für das Wachsen der Bäume oder ähnliches zuständig ist.
Entities können child Entities besitzen. Die haben bisher noch keinen besonderen Zweck, werden aber beim Scripten und AI Verhalten wichtig werden (ist zumindest so geplant). Ich stelle mir dabei ein hierarchisches Prinzip vor. Eine Entitie hat x children und kontrolliert diese. D.h. sie teilt ihre Probleme/Aufgaben auf ihre Children auf. Gibt es keine Children muss sie es selbst erfüllen. Eine Entity kann dabei maximal ein parent Entity haben, aber beliebig viele Children.
Ihr könnt euch gerne darüber unterhalten, stehe bei Fragen auch ab nächster Woche wieder im Chat zur Verfügung. Ansonsten besprechen wir das einfach nächste Woche