Bonjour à Tous,
je suis loin d'être un cador en langage web, mais je fais des efforts !
Je suis confronté à une incohérence (qui n'en est pas forcément une, mais pour moi elle l'est),
en gros, j'ai un objet (une super voiture !) en mouvement dans une zone prédéfinie (un circuit).
Dans ce circuit il y a des obstacles, et le script suivant doit relever les collisions.
Si je retire l'alerte qui figure dans mon "if(boom)... le script omet toutes les collisions hormis la dernière.
Pourquoi ? et comment y remédier ?
je vous remercie
je suis loin d'être un cador en langage web, mais je fais des efforts !
Je suis confronté à une incohérence (qui n'en est pas forcément une, mais pour moi elle l'est),
en gros, j'ai un objet (une super voiture !) en mouvement dans une zone prédéfinie (un circuit).
Dans ce circuit il y a des obstacles, et le script suivant doit relever les collisions.
function collision($div1, $div2) {
var nb_obstacle = $('[class*="obstacle-"]').length;
for (var i = 1; i < nb_obstacle + 1; i++) {
var x1 = $("#voiture").offset().left;
var y1 = $("#voiture").offset().top;
var h1 = $("#voiture").outerHeight(true);
var w1 = $("#voiture").outerWidth(true);
var b1 = y1 + h1;
var r1 = x1 + w1;
var x2 = $(".obstacle-"+i).offset().left;
var y2 = $(".obstacle-"+i).offset().top;
var h2 = $(".obstacle-"+i).outerHeight(true);
var w2 = $(".obstacle-"+i).outerWidth(true);
var b2 = y2 + h2;
var r2 = x2 + w2;
var notBoom = b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2 ;
var boom = !notBoom ;
if (notBoom) {$('#result').text("Aucune collision")};
if (boom) {
$('#result').text("Boom");
alert("boom"); // si je retire cet alert, le script ne me signale que la dernière collision
};
}
}
window.setInterval(function() {
$('#result').text(collision($('#voiture'), $('[class*="obstacle-"]')));
}, 200);
Si je retire l'alerte qui figure dans mon "if(boom)... le script omet toutes les collisions hormis la dernière.
Pourquoi ? et comment y remédier ?
je vous remercie