Closed baertschi closed 10 years ago
onBurn()
-Methode auf. Diese könnte dann den Destruktor aufrufen und anschliessend auch gerade den Pointer löschen. Nur: der Brick-Destruktor darf erst ausgeführt werden, wenn das Feuer das Ground-Field verlässt.Darum Vorschlag: Wir erstellen noch eine 3. Visitor-Methode namens onFireLeave()
, welche solche Sachen handelt. Dann führen alle Fire-Objekte beim instanzieren gleich mal onBurn()
beim aktuellen Feld auf, und später, wenn sie "verschwinden" sollten, führen sie noch onFireLeave()
aus.
onBurn()
könnte man sogar verwerfen... das hat nämlich nur Einfluss auf den Player - der ist aber nicht in der map...
brickElement
, bombElement
, fireElement
und itemElement
.
Wieso braucht FieldContent ein Pointer auf FieldContents?
Wenn Field rein abstrakt ist, und FieldContent onStep und onBurn nicht implementiert, ist auch FieldContent abstrakt und es kann keine Liste von FieldContent Elementen im Ground Feld erzeugt werden. --> Lösung wäre keine Liste oder Array zu machen, sondern für alle Objekte welche instanziert werden können ein Feld reservieren. (sauber?)