Déplacement aléatoire

jkszap Messages postés 5 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 15 juin 2006 - 14 juin 2006 à 08:28
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008 - 14 juin 2006 à 23:00
Salut,
Je suis en train de coder une IA pour un jeu. Le but du jeu est simple : BASTONNNN!!! mais g un problème avec le déplacement aléatoire de mon perso. Avec ce que g codé il a une démarche de poivrot.

Voillà ce que g codé:
move_now(get_position_x()+((rand()%3)-1),get_position_y()+((rand()%3)-1));

move_now c la fonction de déplacement
get_position_x() c pour savoir où est situé mon perso sur l'axe des abscisses.
et je supose que vous avez compris pour get_position_y().

Voilà donc je cherche quelque chose qui fasse que mon perso ratisse un peu mieux la map mais toujours aléatoiremement.

Merci

3 réponses

katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
14 juin 2006 à 11:48
Salut :)

Donnes-lui une liste de waypoints, il ratissera parfaitement la map. A
chaque arivée à un waypoint dis-lui d'en choisir un dans la liste, et
d'y parvenir en choisissant un itinéraire en passant par des waypoints
existant. Ainsi il ne se frottera plus aux murs ou sous un camion, mais
il patrouillera proprement.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 juin 2006 à 15:44
Mais ce qui est dérangent c'est que si c'est toi qui définis les waypoints, ce n'est plus vraiment aléatoire et si les waypoints sont choisis aléatoirement, on peut ce retrouver avec le même problème. Tu peut définir des waypoints de façon aléatoire si tu veut mais tu devrais mettre un minimum et un maximum pour rand de sorte qu'il se déplace d'au moin disons.... 150 pixels. Comme ça tu peut t'assurer qu'il ratisse une bonne partie de la carte. Tien voici un calcule si tu n'en connais pas:

((rand() % (int)(((Max) + 1) - (Min))) + (Min));

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
14 juin 2006 à 23:00
tu peux quadriller ta map et choisir des "waypoints" dans chacun des rectangles de cet quadrillage. Plus ton quadrillage sera petit, plus tes waypoints risque d'etre proches, mais plus tu auras de possibilité de déplacement. Dans ce cas tu peux tester que le waypoint de destination soit à une certaine distance de la position du perso.

++
0
Rejoignez-nous