joyrider
Legacy Member
Hey,
ik ben momenteel bezig met een klein top down view race spelletje te maken voor de gp2x. Nu alles loopt goed maar ik heb wat probleempjes met de AI code.
Mijn eerste idee was om een lijntje links en rechts van de wagen te trekken op -45 & + 45 graden tov de huidige hoek van het wagentje. Dan te tellen hoeveel stappen er nodig zijn om voor elk lijntje tot je aan de zijkant komt van het circuitje en te draaien in die richting waar de meeste stappen geteld zijn.
(zoals je kan zien in dit filmpje van een oude versie: http://www.youtube.com/watch?v=-CMPWrYSwPQ )
Nu dat systeempje werkte wel maar als de wagen crashte in een bocht omdat hij te snel ging kon het zijn dat hij in de verkeerde richting gaat rijden.
Een ander nadeel aan dit systeem is dat de wagen altijd in het midden van de weg zal probreren te rijden wat niet altijd goed is om scherpe bochten te nemen.
Nu een ander ideetje dat ik had was om blauwe vakjes op de weg te zetten en van -90 tot +90 graden (dus 180 graden int totaal) te kijken wat het verste blauwe vierkantje is dat hij tegenkomt (kan zien). Dan de hoek berekenen tussen de positie van de wagen en dat laatst zichtbare blauwe vierkantje en dan het wagentje te laten draaien tot wanneer hij die hoek bereikt. (zoals je kan zien in dit filmpje hier http://users.pandora.be/IMS/misc/devmovies/newcpu.swf.html )
Maar ook hier weer zit ik met hetzelfde probleem dat als het wagentje crashed hij soms in de verkeerde richting gaat.
Tevens weet ik ook niet hoe ik het wagentje kan laten vertragen en versnellen, maw dat de ai car weet dat hij moet vertragen omdat er bvb een scherpe bocht aankomt. Momenteel laat ik hem vertragen als hij op een rood vlak komt maar ik zou liever een algemene manier te weten komen zodat je die rode vlakken niet meer moet tekenen. Het enigste waar ik aandacht is een soort van brute force methode waarbij je alle mogelijkheden afgaat en dan de beste neemt waarin hij niet botst maar dit lijkt me vrij cpu intensief en misschien zelfs niet haalbaar voor de gp2x dan.
Nu ik zou graag een paar andere manieren te weten komen, misschien heeft er hier iemand een beter idee, of een ideetje om mijn huidige manier(en) te verbeteren. Ik denk dat het vanzelf moet beteren eens ik een manier weet om de snelheid van de wagen aan te passen op bepaalde stukken.
alvast bedankt.
ik ben momenteel bezig met een klein top down view race spelletje te maken voor de gp2x. Nu alles loopt goed maar ik heb wat probleempjes met de AI code.
Mijn eerste idee was om een lijntje links en rechts van de wagen te trekken op -45 & + 45 graden tov de huidige hoek van het wagentje. Dan te tellen hoeveel stappen er nodig zijn om voor elk lijntje tot je aan de zijkant komt van het circuitje en te draaien in die richting waar de meeste stappen geteld zijn.
(zoals je kan zien in dit filmpje van een oude versie: http://www.youtube.com/watch?v=-CMPWrYSwPQ )
Nu dat systeempje werkte wel maar als de wagen crashte in een bocht omdat hij te snel ging kon het zijn dat hij in de verkeerde richting gaat rijden.
Een ander nadeel aan dit systeem is dat de wagen altijd in het midden van de weg zal probreren te rijden wat niet altijd goed is om scherpe bochten te nemen.
Nu een ander ideetje dat ik had was om blauwe vakjes op de weg te zetten en van -90 tot +90 graden (dus 180 graden int totaal) te kijken wat het verste blauwe vierkantje is dat hij tegenkomt (kan zien). Dan de hoek berekenen tussen de positie van de wagen en dat laatst zichtbare blauwe vierkantje en dan het wagentje te laten draaien tot wanneer hij die hoek bereikt. (zoals je kan zien in dit filmpje hier http://users.pandora.be/IMS/misc/devmovies/newcpu.swf.html )
Maar ook hier weer zit ik met hetzelfde probleem dat als het wagentje crashed hij soms in de verkeerde richting gaat.
Tevens weet ik ook niet hoe ik het wagentje kan laten vertragen en versnellen, maw dat de ai car weet dat hij moet vertragen omdat er bvb een scherpe bocht aankomt. Momenteel laat ik hem vertragen als hij op een rood vlak komt maar ik zou liever een algemene manier te weten komen zodat je die rode vlakken niet meer moet tekenen. Het enigste waar ik aandacht is een soort van brute force methode waarbij je alle mogelijkheden afgaat en dan de beste neemt waarin hij niet botst maar dit lijkt me vrij cpu intensief en misschien zelfs niet haalbaar voor de gp2x dan.
Nu ik zou graag een paar andere manieren te weten komen, misschien heeft er hier iemand een beter idee, of een ideetje om mijn huidige manier(en) te verbeteren. Ik denk dat het vanzelf moet beteren eens ik een manier weet om de snelheid van de wagen aan te passen op bepaalde stukken.
alvast bedankt.
