User Tag List

Results 1 to 5 of 5

Thread: Mouvement Balle rebondissante

  1. #1
    Forum Moderator Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export Module
    Sphax's Avatar
    Join Date
    Jun 2006
    Location
    Paris, France
    Posts
    4,454
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Mouvement Balle rebondissante

    Bonsoir,
    le mouvement balle rebondissante sera-t-il corrigé un jour ? Actuellement la balle rebondissante a des comportements bizarres (rebonds faux) et se bloque parfois dans les obstacles (décors ou autres) en vibrant...

    Sinon, quelqu'un a-t-il une idée pour réaliser ce genre de mouvement sans aucun capteur bien sur (et sans une tonne d'extensions supplémentaire) ?

  2. #2
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    14,022
    Mentioned
    279 Post(s)
    Tagged
    3 Thread(s)

    Re: Mouvement Balle rebondissante

    Pour les "rebonds faux" dont tu parles, tu mets bien l'option "Randomizer" à 0?

    Yves.

  3. #3
    Clicker

    Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleiOS Export ModuleSWF Export ModuleXNA Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)

    Join Date
    Jul 2011
    Posts
    332
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Re: Mouvement Balle rebondissante

    Le randomizer permet d'obtenir une trajectoire correcte mais c'est vrai que la balle a parfois un comportement bizarre lors des collisions (surtout pour les mouvements rapides).
    C'est peut être du aux collisions mal interprétée (ex: quand la balle s'est enfoncée dans un obstacle)

    Evidemment on peut programmer un mouvement similaire mais c'est pas évident du tout!

    Déjà on peut simplifier un peu : on restreint l'objet à un disque (une balle) et on détecte les collisions avec la fonction CollisionMask(x,y) (par ex. 4 points répartis sur le périmètre du disque)...
    Pour ce qui est de l'accélération verticale c'est pas un problème...

    Le seul vrai problème serait les rebonds...

    Pour cela on fixe les variables A,B,C,D par les fonctions CollisionMask aux quatres points cardinaux de la balle (si le repère est X,Y avec Y orienté vers le haut comme dans MMF) ça donne :

    ''Mise à jour des détections de collision
    +Toujours
    -->fixer la VarA à CollisionMask(Xballe,Yballe-rayon)
    -->fixer la VarB à CollisionMask(Xballe+rayon,Yballe)
    -->fixer la VarC à CollisionMask(Xballe,Yballe+rayon)
    -->fixer la VarD à CollisionMask(Xballe-rayon,Yballe)
    (les variables A à D sont donc des capteurs sur le périmètre de la balle en partant du sommet et dans le sens horaire)

    En considérant qu'on gère les mouvements avec les variables E (mvt en et F (mvt en Y), on obtient un truc dans ce genre :

    Start of frame : mvtX=4;mvtY=-5 (la balle part vers le haut de l'écran à droite)

    ''rebonds en X
    +(VarB-VarD)<>0
    + une seule fois si l'evt en boucle
    alors mvtX=-1*mvtX
    (c'est une compression de VarB=1 --> mvtX=-1*mvtX
    et VarD=1 --> mvtX=-1*mvt

    ''rebonds en Y
    +(VarA-VarC)<>0
    + une seule fois si l'evt en boucle
    alors mvtY=-1*mvtY
    (idem en Y)

    ''Gravité
    +Ttes les 0.1s
    +Balle n'est pas en superposition avec un décors
    +MvtY<7 (=la vitesse de chute maximum)
    --> MvtY=MvtY+1 (l'accélération est constante)

    ''Anti-bogue : on évite les rebonds infinis (je suis pas sûr ni de son utilité, ni de son éfficacité)
    +Balle est en SuperPosition avec un décor
    +Abs(MvtY)=1
    --> MvtY=0

    Ensuite on peut ajouter les frottements dynamiques pour ralentir le mouvement en X lorsque la balle roule...
    on peut aussi utiliser des boucles rapides pour sortir la balle du décors au besoin et lui faire monter des pentes (normalement elle devrait les descendre...)

    Honnêtement ça m'étonnerai que ça fonctionne (du premier coup!), j'ai du zapper un ou deux trucs mais je pense que stocker les CollisionMask dans les Variables est une bonne idéé car ça permet de gérer plusieurs balles (ce qui est plus difficile avec des capteurs).

    Je pense quand même que le mouvement "balle" reste ce qui peut se faire de mieux sous MMF; faut voir ce que donne mon code mais ça doit pas être folichon...
    Si j'ai le temps j'essaierai de faire un exemple ce soir.

    Ben

    PS : j'ai jamais compris pourquoi MMF/TGF ont dans leur repère ortho. un axe Y vers le haut!! ça je crois que c'est collector; je ne l'ai jamais vu ailleurs (même dans les logiciels de simulation de contraintes méca. bien bizarres les axes Y sont vers le haut) mais bon... on s'y fait!
    Et puis changer cette règle maintenant provoquerait un joli bazar!

  4. #4
    Forum Moderator Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export Module
    Sphax's Avatar
    Join Date
    Jun 2006
    Location
    Paris, France
    Posts
    4,454
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Mouvement Balle rebondissante

    Pour l'origine du repère en haut à gauche c'est normal. C'est toujours comme ça quand on programme.

    Sinon pour programmer la balle rebondissante, je pense que je vais pas le faire à la main car je dois gérer plusieurs balles et ça va générer un bazard monstre dans l'event editor tout en faisant encore plus ramer l'appli (j'utilise à fond les effets de particule et l'alpha).

    Pour les rebonds faux et les comportements étranges du mouvement balle rebondissante par défaut, j'essayerais de faire un exemple mais c'est pas simple car imprévisible.

    Il y a aussi un comportement bizarre quand la balle rebondit trop souvent en peu de temps elle se met à rentrer dans les objets et se met à vibrer...

    Et enfin, le fait qu'il serait bien de pouvoir éditer le mask de collision des objets actifs car quand on utilise la couche alpha, on ne sait pas comment l'objet va être testé dans les collisions...

    EDIT: Je viens de faire un exemple, c'est en fait un bug du mouvement je pense ou même de MMF : MFA ICI

  5. #5
    Clicker

    Fusion 2.5 DeveloperFusion 2.5+ DLCAndroid Export ModuleiOS Export ModuleSWF Export ModuleXNA Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)

    Join Date
    Jul 2011
    Posts
    332
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Re: Mouvement Balle rebondissante

    j'ai laché l'affaire pour un mouvement "maison".
    Quand les décors sont inclinés c'est chaud pour que le balle rebondisse correctement. Et effectivement c'est le bazar si on veut gérer plusieurs objets...

    C'est vrai que ce mouvement reste inchangé depuis TGF!!!
    Il est rarement utilisé à son plein potentiel (quelques casse briques assez simples ça et là) ce qui explique que peu de gens -à ma connaissance- ont signalé ceproblème!

    Appel à la Clickteam : une petite révision du mouvement??

    ce qu'il faut modifier??
    --> mouvement pixel par pixel et détection des collisions à chaque fois pour éviter les encastrements de balle dans les murs.
    --> une clarification des facteurs randomizer et security. Dans la mesure où ils ne sont pas liés (on peut mettre les deux à 100 ou à 0) je ne vois pas trop ce que ça représente...

Similar Threads

  1. Fluidité mouvement balle qui rebondit
    By Angelgame in forum Multimedia Fusion 2 - Technical Support
    Replies: 9
    Last Post: 6th September 2012, 05:29 PM
  2. Rebondissement de balle
    By zooria in forum Multimedia Fusion 2 - Technical Support
    Replies: 6
    Last Post: 3rd December 2011, 08:26 PM
  3. Idée: balle déformable
    By Sylnade in forum Extension Developers Lobby
    Replies: 3
    Last Post: 26th September 2006, 06:28 AM
  4. Mouvement de Balle
    By Xenon3000 in forum Multimedia Fusion 2 - Technical Support
    Replies: 2
    Last Post: 2nd July 2006, 01:30 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •