IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

Problème collisions HitTest()


Sujet :

Flash

  1. #1
    Membre expérimenté
    Avatar de Manumation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1 153
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 153
    Points : 1 469
    Points
    1 469
    Par défaut Problème collisions HitTest()
    Bonjour tout le monde !!

    Voici mon tout premier message sur developpez...En temps normal, je ne poste jamais sur les forums, les réponses s'y trouvant déjà, mais là, je me suis dit qu'il était peut-être préférable de le faire...

    Je suis en train de réaliser un casse-briques en flash, jusque-là, pas de problème...

    Mais j'utilise la méthode HitTest pour détecter d'éventuelles collisions entre la balle et les briques et j'ai un petit souci, je m'explique :

    Parfois, lorsque la balle arrive sur une brique (principalement une brique incassable), elle se met à suivre ses contours, au lieu d'être renvoyée à l'opposé...

    Je ne sais pas si j'utilise la bonne méthode, ou si je fais faux...

    Je sais qu'il y a d'autres solutions pour gérer les collisions, mais étant débutant en flash, je ne comprends pas forcément tout...

    Pouvez-vous m'aider, svp !

    Voici mon code que je place sur la brique incassable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    onClipEvent (enterFrame) {
     
    if(_root.balle.hitTest(this)){
    		_root.balle.yspeed=-_root.balle.yspeed;
    		}
     
    }

    --> Heureux est l'étudiant, qui comme la rivière, peut suivre son cours sans jamais quitter son lit...
    --> Il n'y a que dans le dictionnaire que "succès" précède "travail"...

    Pas de MP techniques, svp !

    Psst...Ici, viens voir par là...


    Des questions sur Hijackthis ?

  2. #2
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,

    c'est bizarre j'ai testé ton code il marche parfaitement !

    Pièce jointe 14227

    (c'est du flash 8)
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  3. #3
    Membre expérimenté
    Avatar de Manumation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1 153
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 153
    Points : 1 469
    Points
    1 469
    Par défaut
    Rebonjour ! (désolé, hier je n'étais pas là...)

    Tout d'abord merci d'avoir répondu...
    Alors oui, effectivement mon code marche bien...En tout cas pour une brique...

    Mais mon problème, c'est que j'ai créé un niveau un peu plus complexe, avec des briques qui se cassent et d'autres qui ne se cassent pas...Et théoriquement, tout devrait fonctionner...Mais parfois (je dirais même souvent), la balle ne rebondit pas correctement sur la brique, elle suit la bordure, puis repart dans une direction aléatoire...C'est cela que je ne saisis pas...

    ps : Cela arrive principalement quand la balle arrive dans les coins...

    Au début, je pensais que le HitTest se faisait trop tard et que la balle avait le temps de rentrer dans la brique et de faire le hittest à l'intérieur...Mais après plusieurs essais infructueux, il s'est avéré que ce n'était pas ça qui posait problème...

    Je me suis déjà orienté vers d'autres solutions comme la collision circulaire (en calculant la distance entre les 2 centres), mais comme son nom l'indique elle est réservé aux cercles...

    Je pense désormais à utiliser un système de tuile...Mais j'ai un encore un peu de mal à comprendre...Est-il possible de m 'aider ? (En tout cas pour le principe de base...)

    --> Heureux est l'étudiant, qui comme la rivière, peut suivre son cours sans jamais quitter son lit...
    --> Il n'y a que dans le dictionnaire que "succès" précède "travail"...

    Pas de MP techniques, svp !

    Psst...Ici, viens voir par là...


    Des questions sur Hijackthis ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Bonjour manumation,


    Voilà après explication de ton erreur je viens de remarquer que j'ai justement la même erreur dans mon petit jeu aussi. Donc si tu a trouver quelque chose ou si tu a envie qu on mette en commun nos progs ca sera avec plaisir



    a+++

  5. #5
    Membre expérimenté
    Avatar de Manumation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1 153
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 153
    Points : 1 469
    Points
    1 469
    Par défaut
    Bonjour Tout le monde...

    Avec beaucoup de persévérance, je suis arrivé a une solution un peu plus satisfaisante (malheureusement pas totalement...)

    Si ça intéresse quelqu'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
     
    onClipEvent (enterFrame) {
     
    // trace (_root.balle.yspeed) ;
     
    if(_root.balle.hitTest(this)){
     
                    if (_root.balle.yspeed < 0) { // la balle monte
                            _root.balle.yspeed =  Math.abs(_root.balle.yspeed);
    						_root.balle._y = _root.balle._y + 4;
     
                    } else { // la balle descend
    					_root.balle._y = _root.balle._y - _root.balle.yspeed;
    					_root.balle.yspeed = - Math.abs(_root.balle.yspeed);
     
    				}
     
    			} 
     
    }
    Et si quelqu'un a une autre idée, elle est la bienvenue !

    Sur ce , je vous remercie !

    --> Heureux est l'étudiant, qui comme la rivière, peut suivre son cours sans jamais quitter son lit...
    --> Il n'y a que dans le dictionnaire que "succès" précède "travail"...

    Pas de MP techniques, svp !

    Psst...Ici, viens voir par là...


    Des questions sur Hijackthis ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    merci d'avoir partagé ton code!!! a+++

  7. #7
    Membre expérimenté
    Avatar de Manumation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1 153
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 153
    Points : 1 469
    Points
    1 469
    Par défaut
    Mais de rien ! Le Forum c'est fait pour ça..Allez, bye !

    --> Heureux est l'étudiant, qui comme la rivière, peut suivre son cours sans jamais quitter son lit...
    --> Il n'y a que dans le dictionnaire que "succès" précède "travail"...

    Pas de MP techniques, svp !

    Psst...Ici, viens voir par là...


    Des questions sur Hijackthis ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XNA 3.1] Problème: Collision par pixel sur un niveau entier
    Par Nigeling dans le forum XNA/Monogame
    Réponses: 2
    Dernier message: 15/05/2011, 14h21
  2. Actionscript 2.0 problème collision
    Par BoloG dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 10/05/2009, 20h50
  3. [problème] collisions environnement
    Par pspflashsystem dans le forum OpenGL
    Réponses: 1
    Dernier message: 04/04/2009, 14h58
  4. Réponses: 8
    Dernier message: 04/09/2007, 09h48
  5. [C++] problème collision
    Par agrosjea dans le forum Développement 2D, 3D et Jeux
    Réponses: 9
    Dernier message: 16/04/2007, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo