Dag 2

Op dag 1 is de basis voor de gesimuleerde zombie wereld gedefinieerd. Hierin zijn al de objecten geplaatst in de wereld. De objecten (“Tiles”) kunnen echter nog niet bewegen. Vandaag willen we dit werkend krijgen. Het bewegen van de mensen en zombies willen wordt gedaan in de main class (World.java) door de update functie.

De werking van de update functie is als volgt. Zoals gezien in het labboek van dag 1 hebben zijn er verschillende klassen aangemaakt. In de klasse world.java gaat het programma elke tile langs, van links boven tot aan rechts beneden. Bij het langsgaan van de wereld wordt er bij elke tile een update uitgevoerd. Dit wordt gedaan in een tijdelijke grid. Pas zodra alle tiles geupdatet zijn wordt de hele wereld grafisch opnieuw gerenderd.

Een probleem waar wij tegen aanliepen is dat de tiles aan het begin van de grid altijd voorrang hebben op de tiles aan het einde van de grid. Dit komt doordat bij een update altijd links boven wordt begonnen met updaten. Door het gebruiken maken van een temporary grid verhelpen we dit probleem enigszins. Dit is volgens ons het meest eerlijke update systeem dat wij konden creëren.

Nu elk tile kan worden geüpdatet, moet bepaald worden hoe de tiles precies moeten worden geupdate. De specifieke update functie is afhankelijk van de variabele of de tile een mens, zombie, land of zee is. Een mens en zombie moeten immers kunnen bewegen. Maar wanneer een tile land of zee is moet deze niet verplaatst worden. De mens en zombie wordt naast een locatie ook een oriëntatie meegeven. Dit is gedaan zodat we ook kunnen implementeren of een mens een zombie ziet en/of andersom.

De implementatie voor de beweging van de zombie is vandaag gelukt. De zombie beweegt nu random, maar we willen graag ook intelligentie meegeven aan de zombie door middel van sensory range. Dit gaan we de volgende dagen uit proberen te voeren.