[Flash] problème avec la fonction hitTest (problème illustré)

problème avec la fonction hitTest (problème illustré) [Flash] - Flash/ActionScript - Programmation

Marsh Posté le 26-04-2005 à 23:08:49    

J'dois faire un tetris en flash pour un projet mais je galère sur une fonction  :cry:  
 
Voila je vais essayer d'expliquer clairement c'est pas évident. Si j'explique mal , faut le dire pas hésiter :jap:
Dans mon tetris, j'utilise la fonction "hitTest" qui permet de voir si 2 movieClip sont en colisions
(pratique pour voir si la pièce courante touche les cubes déjà en place :D)
 
Mais le problème c'est que cette fonction marche un peu trop bien :lol:
En effet elle m'indique que ma pièce est en colision avec les cubes quand celle ci est en diagonale :
Une image parle mieux qu'un long discours :
 
http://popol55.free.fr/tetris/tetris2.jpg%20
 
Ma question :
 
Peut on utiliser cette fonction afin qu'elle ne teste pas les diagonales ?
 
Mon code pour info :  
 

Code :
  1. for (i=0; i<18; i++) {
  2.  for (j=0; j<11; j++) {
  3.   testcube = _root["cube"+p];
  4.   p++;
  5.   if (_root.piece.hitTest(testcube)) {
  6.    trace("cube"+p);
  7.    return true;
  8.   }
  9.  }
  10. }

Reply

Marsh Posté le 26-04-2005 à 23:08:49   

Reply

Marsh Posté le 27-04-2005 à 00:55:53    

Rien à voir avec des diagonales/horizontales/verticales !!!
Le hitTest dans ton cas se fait sur les bounding boxes des objets : zoome à l'endroit où "ça coince", je parie que tu verras que, même de 1 point, il y a collision ! ( fais gaffe à un potentiel contours transparent )
Tu dois avoir un problème de placement des cubes ( ajoute, par exemple 0.5 unité entre chaque cube juste pour tester )

Reply

Marsh Posté le 27-04-2005 à 03:08:37    

Entre nous, les colisions précises sur Flash, c'est pas évident, le log fait un peu ça à sa sauce.

Reply

Marsh Posté le 27-04-2005 à 07:44:14    

Vaudrait peut être mieux que je code ca en fait :/
Merci en tout cas je vais voir :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed