Projekt: Blood of the Undead

Benutzeravatar
marcgfx
Establishment
Beiträge: 2113
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »


Häuser werden jetzt gebaut, ein Männlein und ein Weiblein werden dafür "geopfert". Die Häuser machen noch gar nichts.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2113
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Ich tue mich grad ein bisschen schwer, manchmal hilft es ja die Probleme zu formulieren.
Main Plan ist eine Art Fabrik-System aufzubauen. In den kleinen Wohnhäusern werden Mann/Frau abwechselnd produziert. Vermutlich werde ich noch einen Schalter einbauen, so dass der Spieler auch nur Männer/nur Frauen produzieren kann. Die Menschen können zu einem anderes Gebäude geschickt werden, wo sie veredelt werden. Das soll vom Spieler manuell gemacht werden können, oder direkt ab Produktion via Pathfinding verschickt werden.

Das Problem ist das Pathfinding. Gebäude blockieren das Grid, die entsprechenden Grid sind als blockiert gekennzeichnet. Meine erste Idee war die blockade mit der id der blockierenden Einheit zu setzen. Blockiert das Gebäude mit id 5 ein Feld, steht im Feld "blocked" der Wert 5. Einheiten die zu diesem Gebäude geschickt werden, bekommen im Pathfinding eine Ausnahme blockierte Felder mit Wert 5 zu passieren. Einfach eigentlich. Nur habe ich das Pathfinding schon etwas komplizierter gemacht. Jedes Grid enthält ein Feld "size", welches mir sagt wie gross eine Einheit maximal sein darf, die auf diesem Feld steht. Eine 2x2 Grid grosse Einheit had "size" 2 and kann alle grid mit Feld "size">=2 passieren. Wird ein Feld blockiert/frei wird "size" für alle Grids neu berechnet. Heisst ein blockiertes Feld hat auch immer den Wert "size"=0. Die Informationen sind etwas redundant.

Meine Lösung die Grids zu passieren mit der id meines Zielgebäudes läuft nicht mehr, sobald ich "size" mit einbeziehe. Die einfachste Lösung wäre auf "size" ganz zu verzichten, was momentan Sinn machen würde, da ich eh praktisch nur Einheiten habe die nur 1 Feld belegen. Das würde auch alle neu Berechnungen unnötig machen, aber es tut mir etwas weh das Problem noch nicht lösen zu können.

edit: 10min später... Schreiben hat echt was gebracht. Habe schweren Herzens meine "coole" Lösung vorläufig verworfen und jetzt klappt es mit Einheiten bauen und veredeln.
Antworten