Retour à l'accueil
Accueil Aide Rechercher Calendrier Identifiez-vous Inscrivez-vous
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
21 Septembre 2019 à 14:37

Connexion avec identifiant, mot de passe et durée de la session
Règlement | Grades du forum | L'équipe de modération | Album photo | Chat
Rechercher:     avancée
Forums Zelda Solarus  |  Jeux amateurs  |  Aide & support  |  Topic: [MMF2] Mouvement aléatoire 0 Membres et 1 Invité sur ce sujet.
Pages: [1] Imprimer
Auteur Sujet: [MMF2] Mouvement aléatoire  (Lu 2629 fois)
Djipi
Gerudo
*
Offline Offline

Messages: 1 936


Golock Créator...


Courriel
« le: 29 Septembre 2013 à 13:35 »

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?
Journalisée

Ynanome
Sage
Gerudo
*
Offline Offline

Messages: 1 665


Courriel
« Répondre #1 le: 29 Septembre 2013 à 14:01 »

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).
Journalisée
Spring Up
Tokay
*
Offline Offline

Messages: 191


Fait ce qui lui plait...


Courriel
« Répondre #2 le: 16 Octobre 2013 à 15:36 »

Salut Djipi,

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

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

A+
Journalisée

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

Messages: 217


Why so serious ?


WWW Courriel
« Répondre #3 le: 16 Octobre 2013 à 17:23 »

Suffit de placer la direction de l'actif, en fonction d'une variable à une valeur aléatoire comprise entre 0 et 32 non ?
Journalisée

I'm Belmont, that's my job !
Djipi
Gerudo
*
Offline Offline

Messages: 1 936


Golock Créator...


Courriel
« Répondre #4 le: 16 Octobre 2013 à 17:40 »

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.
Journalisée

Spring Up
Tokay
*
Offline Offline

Messages: 191


Fait ce qui lui plait...


Courriel
« Répondre #5 le: 16 Octobre 2013 à 18:03 »

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+
« Dernière édition: 16 Octobre 2013 à 18:06 par Spring Up » Journalisée

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

Messages: 217


Why so serious ?


WWW Courriel
« Répondre #6 le: 16 Octobre 2013 à 19:01 »

Ah oui j'avais zappé le fait que le mouvement doit etre realiste :P
Niquel ton exemple Spring Up :)
Journalisée

I'm Belmont, that's my job !
Cyberclic
Subrosien
*
Offline Offline

Messages: 214



WWW Courriel
« Répondre #7 le: 16 Octobre 2013 à 19:02 »

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
Journalisée
Pages: [1] Imprimer 
Forums Zelda Solarus  |  Jeux amateurs  |  Aide & support  |  Topic: [MMF2] Mouvement aléatoire
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 2.0.15 | SMF © 2006, Simple Machines LLC XHTML 1.0 Transitionnel valide ! CSS valide !
Zelda Solarus 2009Skin par Eidarloy
Solarus-Games