Des murs infranchissables

nulloss Messages postés 5 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 29 avril 2006 - 12 sept. 2005 à 23:00
nulloss Messages postés 5 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 29 avril 2006 - 13 sept. 2005 à 20:24
Slaut à tous !!

je suis sur un pac man (comme beaucoup d'autre) mais je n'arrive pas a faire des murs solides.

Je n'arrive pas à faire en sorte que seuls mes murs dessinés
soient des zones réactives, Flash considère un carré (une zone
grossiere) comprenant tous mes murs.

J'ai vu que quelqu'un avait eu ce probleme aussi mais on lui a demandé
s'il était utile de réexpliquer les fonctions de "hitTest" puis pas de
réponse du coup je ne connais pas l'autre méthode qui doit être la
bonne.

je fais celle-ci : "(_root.pacman.hitTest(_root.mur))"

A tous ceux qui comprendront mon charabia et posteront des réponses MERCI

2 réponses

slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
13 sept. 2005 à 18:42
Et bien regarde ce que tu devrais faire :



la dans ton truc, ça ne prend pas en compte la forme de ton dessin, juste le carré dans lequel il est.



Donc, si tu as fais un pacman classique, c'est à dire que tu ne peux
bouger que de gauche à droite, et de haut en bas, ET que les murs sont
tous soient verticaux, soient horizontaux, alors c'est simple !



Tu vérifies tout simplement, si le côté gauche de ton pacman touche un
mur, si le côté droit touche un mur, au dessus, et en dessous.



Pour ça, toujours la fonction hitTest, mais utilisé de cette façon :



// Ces 4 points sont calculés si le pacman est
centré dans son clip. Ca prend simplement le milieu des 4 côtés du
carré qui entoure le pacman.

var X1 = pacman._x - pacman._width/2;

var X2 = pacman._x + pacman._width/2;

var Y1 = pacman._y - pacman._height/2;


var Y2 = pacman._y + pacman._height/2;



if (mur.hitTest (X1, pacman._y, true))

{

// ON NE BOUGE PLUS A GAUCHE !!!

}



if (mur.hitTest (X2, pacman._y, true))

{

// ON NE BOUGE PLUS A DROITE !!!

}



if (mur.hitTest (Y1, pacman._x, true))

{

// ON NE MONTE PLUS !!!

}



if (mur.hitTest (Y2, pacman._x, true))

{

// ON NE DESCEND PLUS !!!

}





Le code n'est pas très compliqué, essaye de le comprendre avant de poser une autre question !



Bonne chance
0
nulloss Messages postés 5 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 29 avril 2006
13 sept. 2005 à 20:24
Merci je regarderai bien cette reponse !
0
Rejoignez-nous