|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 6 ![]() |
Hello,
Premièrement, je vous présente d'avance mes excuses si cette question a déjà été posée, je dois avouer que je suis un peu au bout du rouleau. Je suis en projet as3 et mon prof a décidément de nous laisser seuls après seulement 2 cours. Mon problème est le suivant : Une boucle appelle en continue des boulets pour provoquer une chute de neige. J'ai un élément présent directement sur la scène que je peux contrôler grâce aux flèches du clavier. J'aimerais créer une gestion de collision entre les éléments qui chutent et le personnage. J'ai pensé à faire un tableau dans le quel je mettrais chaque élément de la boucle, puis une utiliser le fonctionnement du tableau pour permettre à une fonction d'en tester chaque composant afin de voir si oui ou non il y a collision. Simplement, je n'arrive pas à mettre tout cela en code. Si jamais l'un de vous avait le temps de m'aider rapidement, ça me sauverait vraiment la mise. Si non, merci quand même d'avoir lu. Eshra |
|
|
00
|
|
|
#2 | ||
|
Membre du Club
![]() Développeur informatique Inscription : décembre 2009 Messages : 40 ![]() |
Bonjour,
Pour tester des collisions simples en AS3 il existe la méthode hitTestObject(obj: DisplayObject):Boolean. Donc pour ton problème, tu parcours ton tableau contenant les boulets et pour chaque boulet tu testes la collision avec l'élément présent sur ta scène. Un petit exemple non-fonctionnel mais qui montre le principe : Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 6 ![]() |
Merci pour la réponse
Dernières questions probablement stupides, mais la boucle pour les boulets je la fait directement dans un tableau ? Et le bout de code que tu m'as montré, je dois le placer où ? |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Développeur informatique Inscription : décembre 2009 Messages : 40 ![]() |
Il faut au préalable que tu stockes tous tes boulets dans un tableau.
Le code que peut être placé dans une fonction appelée lors de l'événement ENTER_FRAME par exemple afin de tester la collision à chaque frame. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 6 ![]() |
Justement, j'ai saisi la logique, je ne sais simplement pas comment fonctionne le code. C'est bien tout le problème de ce projet initié trop rapidement par mon professeur.
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Développeur informatique Inscription : décembre 2009 Messages : 40 ![]() |
Peux-tu montrer le code que tu as actuellement ?
|
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 6 ![]() |
Code :
C'est ma partie de code qui concerne la boucle. ( l'autre élément lui est déjà sur la scène et a pour nom d'occurence " perso ". Je sais pas si ça change quelque chose qu'il soit déjà sur la scène pour gérer la collision ) |
||
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() Développeur informatique Inscription : décembre 2009 Messages : 40 ![]() |
Vu ton code tu n'as pas besoin de faire une boucle pour tester la collision. Tu peux utiliser la fonction onHbFrame à la place puisqu'elle est appelée à chaque frame pour chaque hamburger.
La fonction onHbFrame devrait ressembler à peu près à ça si on rajoute le test de collisions : Code :
|
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 6 ![]() |
" Accès à la propriété non définie : container "... Je n'ai jamais rien mis dans un container, ça vient de ça ?
|
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Développeur informatique Inscription : décembre 2009 Messages : 40 ![]() |
Euh... là je ne peux pas deviner. Cette erreur n'a pas grand-chose à voir avec le code que tu as montré. Flash t'indique la ligne de l'erreur normalement.
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 6 ![]() |
C'est bon, j'ai fini par régler le soucis et ça marche nickel. Merci beaucoup pour ton aide.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com