Tuesday, March 14, 2017

Optimalisatie

In het filmpje in de vorige post kon je zien dat een grid van 81x81 tegels bijna een minuut kostte om te laden. Dit kwam niet omdat het pathfinding algoritme zo heftig is, maar omdat ik niet slim omging met mijn code.
Ik ging bij iedere tegel door de lijst van alle tegels heen om te kijken of er buurtegels in de lijst zaten. Dus bij een grid van 51x51 tegels ging ik 2601 keer door die lijst heen, niet echt efficient!
Nu ga ik 1x door de lijst heen en bereken ik d.m.v. de index welke tegel er links, rechts, boven en onder ligt.

Ook heb ik de positie het doel (de frikandel speciaal) gerandomised, en animeer ik het pad naar het doel toe, om het allemaal wat dynamischer te maken.

Als je op spatie drukt wordt er een doolhof gegenereerd, en dat wordt daarna gecheckt of het doel te bereiken is. Als dat niet zo is wordt er een nieuw doolhof gegenereerd, net zo lang totdat het doel te bereiken is.

Ik had in de vorige post als doel gesteld om het pathfinding te optimaliseren, maar omdat ik dit nog niet helemaal snap, en de pathfinding in principe snel werkt, ga ik eerst kijken naar het implementeren van tussenstations. Dus het karakter moet naar bepaalde tussendoelen voordat het naar het einddoel mag lopen.


No comments:

Post a Comment