Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

à l'aide!!

Envoyé: 3 août 2003, 16h44 par jeux_en_stock


J'ai un problème de détection de collisions.

-J'ai une occurence de personnage sur la scène que j'ai appelé "billy"
-j'utilise 8 points de collisions stockés dans un tableau nommé "hitPoints". Les voicis:

hitPoints = new Array();
hitPoints.push({x:-13, y:-20});
hitPoints.push({x:0, y:-20});
hitPoints.push({x:13, y:-20});
hitPoints.push({x:13, y:-1.25});
hitPoints.push({x:13, y:17.5});
hitPoints.push({x:0, y:17.5});
hitPoints.push({x:-13, y:17.5});
hitPoints.push({x:-13, y:-1.25});

-les murs et planchés sont tous dans une occurence que j'ai appelé "murs"


Voici mon code:


function main(){

//premièrement, j'appèle la fonction qui détecte
//les touches au clavier
detectionTouches("billy");
//on atténue les déplacements latéraux
//pour que billy ralentisse plus lentement
atténuation("billy");
//on ajoute la gravitée à dy
gravitée("billy");
//détections des collisions
detectCollision("billy");

/*******************************************
les quatres dernières fonctions appelées
s'occupent d'ajuster les variables dx et dy
*******************************************/

//on déplace le personnage par dx et dy
déplacementPersonnage("billy");
}


//fonction principale pour les collisions
function detectCollision(cible){
for(i = 0; i < hitPoints.length; i++){
x = hitPoints[i].x + _root[cible]._x;
y = hitPoints[i].y + _root[cible]._y;
detectX(cible, x, y);
detectY(cible, x, y);
}
}

//Détections sur l'axe des X
function detectX(cible, x, y){
chiffre = _root[cible].dx;
while((mur.hitTest(x + _root[cible].dx, y, true)) and (_root[cible].dx != 0)){
_root[cible].dx -= chiffre / Math.abs(chiffre);

}
}

//Détections sur l'axe des Y
function detectY(cible, x, y){

//Cette portion de code sert à savoir si c'est possible
//que le personnage se soit posé
_root[cible].landed = false;
if(_root[cible].dy > 0){
possible = true;
} else if(_root[cible].dy < 0){
possible = false;
}


chiffre = _root[cible].dy;
while((mur.hitTest(x, y + _root[cible].dy, true)) and (_root[cible].dy != 0)){
_root[cible].dy -= chiffre / Math.abs(chiffre);
}


//cette portion de code sert à dire si le personnage est
//posé sur le planché
if((_root[cible].dy == 0) and (possible)){
_root[cible].landed = true;
}
}

s'il manque quelque chose qui pourrait aider à résoudre le problème, dites le moi.



tout fonctionne à merveille... sauf,
les coins.

Cela fait plus de trois jours que je cherche c'est quoi le problème...
Aux secours!!!


Réponses

 sp spProblème de détection de collisions jeux_en_stock3/8/2003
 sp spRe: Problème de détection de collisions Oznog3/8/2003
 sp spRe: Problème de détection de collisions alepine19/3/2004
 sp spRe: Problème de détection de collisions jeux_en_stock4/8/2003
 sp spYaahhooooo!! jeux_en_stock5/8/2003
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@