[MMF2] Mouvement aléatoire

Démarré par Djipi, 29 Septembre 2013 à 14:35

0 Membres et 1 Invité sur ce sujet

Bonjour à tous ,

Je suis en train de me casser les dents sur un truc tout bête . Je voudrais faire qu'un objet est un mouvement complètement aléatoire au niveau de la direction. Je trouver un moyen qui est de mettre dans mon objet l'option "ball qui rebondi" en mouvement et que toute les 20 dixième de seconde je change la direction.

Cela fonctionne j'ai bien un mouvement aléatoire mais il est trop "cassé" , on dirais qu'il fait des angle pour tourner alors que j'aimerais un mouvement plus réaliste avec des courbe quand il change de direction , ou alors une descellération lors du changement de direction mais je n'arrive pas à avoir un mouvement convenable.

Auriez vous une petite aide?

Il faut que tu récupères en continu la direction actuelle de ta balle.

Si tu peux la récupérer directement sous forme d'angle (en degrés ou radians), c'est nickel.

Sinon, tu peux récupérer le déplacement en x et y qui s'est opéré depuis la dernière frame et le convertir en angle via la conversion coordonnées cartésiennes <-> coordonnées polaires.
En gros, un déplacement de 2 pixel à droite et 2 pixels en haut depuis la dernière frame correspond à un angle de 45 degrés, etc. Je te laisse chercher comment passer des coordonnées cartésiennes (x et y) aux coordonnés polaires (angle et longueur du déplacement) sur Google, je ne me rappelle plus la formule, là comme ça^^".

Une fois que tu connais donc la direction de déplacement actuelle de ta balle, au lieu de générer une direction purement aléatoire tu ajoutes durant un certain temps une certaine valeur (par exemple 1°). Tu as ainsi un angle qui évolue de façon continue, générant un changement de direction plus doux (45°->46°->47° etc). Tu connais donc la nouvelle direction de ta balle, il te suffit de la faire avancer dans cette direction. (Même chose, je ne connais pas MMF, mais s'il n'y a pas de fonction "avancer dans telle direction", tu peux convertir ça en déplacement x et y via la conversion coordonnées polaires <-> coordonnées cartésiennes).

Salut Djipi,

J'avais 5 minutes à perdre pour faire un exemple (exe et mfa).

https://www.dropbox.com/s/0dyjdycc6z64ybz/Dir_Aleatoire.zip

A+
Moteurs cases à cocher (tgf, mmf).
De l'aide sur un blog pour finaliser:
http://clickmoteur.blogspot.com/

Suffit de placer la direction de l'actif, en fonction d'une variable à une valeur aléatoire comprise entre 0 et 32 non ?
I'm Belmont, that's my job !

Merci Spring Up c'est parfait . c'est super cool de ta part.

Ynanome , j'ai pas tout compris mais je pense que tu étais dans le vrai.

falcossj , oui je pensais aussi mais je butais.

16 Octobre 2013 à 19:03 #5 Dernière édition: 16 Octobre 2013 à 19:06 par Spring Up
Salut Falcossj,

Sur une map iso, entre 0 et 32, suivant le rapport, la réponse est non, comme avec un moteur de tir à 360°.
A la base, il manque donc au moins 32 directions.

Utiliser une valeur correspondant à un angle, revient à utiliser une direction avec MMF.

La réponse concerne plus la pratique, puisqu'il s'agit pour plus de "réalisme" de fluidifier le mouvement.

L'exemple joue simplement sur direction +1 ou direction -1, après un random.
Direction +1, correspond à angle plus une valeur, que je n'ai pas pris le temps de calculer.

A+
Moteurs cases à cocher (tgf, mmf).
De l'aide sur un blog pour finaliser:
http://clickmoteur.blogspot.com/

Ah oui j'avais zappé le fait que le mouvement doit etre realiste :P
Niquel ton exemple Spring Up :)
I'm Belmont, that's my job !

La méthode de Spring Up est très bien  ;)
Voici une autre technique que j'ai faite, mais qui fait moins naturel  :P
http://download.margasoft.fr/aleatoire.zip