1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| (function() {
var mario = document.getElementById("mario");
var gauche = parseInt(mario.style.left) || 0,
// droite = mario.style.right,
// bas = mario.style.bottom,
haut = parseInt(mario.style.top) || 0,
largeur = parseInt(mario.width) || 20,
hauteur = parseInt(mario.height) || 20;
var bord = {
haut : 0,
gauche : 0,
bas : (parseInt(aire_de_jeu.clientHeight) || 400) - (parseInt(aire_de_jeu.clientTop ) || 0),
droit : (parseInt(aire_de_jeu.clientWidth ) || 400) - (parseInt(aire_de_jeu.clientLeft) || 0)
};
var bord_atteint = false,
mettre_à_jour_position = true;
var message = "Je ne peux pas aller plus loin, patate !";
var deplacement = 10;
event = event || window.event;
function addEvent(element, event, func) { // Une fonction pour gérer les événements sous tous les navigateurs
if (element.attachEvent) {
element.attachEvent ('on' + event, func);
}
else {
element.addEventListener (event, func, false);
}
};
addEvent (window, 'keydown', function (event) {
var KEYCODE_LEFT_ARROW = 37,
KEYCODE_RIGHT_ARROW = 39,
KEYCODE_UP_ARROW = 38,
KEYCODE_DOWN_ARROW = 40;
switch ( event.keyCode ) {
case KEYCODE_LEFT_ARROW:
if ( (gauche-déplacement) >= bord.gauche ) {
gauche -= déplacement;
}
else {
bord_atteint = true;
}
break;
case KEYCODE_RIGHT_ARROW:
if ( (gauche+largeur+déplacement) < bord.droit ) {
gauche += déplacement;
}
else {
bord_atteint = true;
}
break;
case KEYCODE_UP_ARROW:
if ( (haut-déplacement) >= bord.haut ) {
haut -= déplacement;
}
else {
bord_atteint = true;
}
break;
case KEYCODE_DOWN_ARROW:
if ( (haut+hauteur+déplacement) < bord.bas ) {
haut += déplacement;
}
else {
bord_atteint = true;
}
break;
default:
mettre_à_jour_position = false;
break;
}
if ( bord_atteint ) {
mettre_à_jour_position = false;
alert(message);
}
if ( mettre_à_jour_position ) {
mario.style.top = haut+"px";
mario.style.left = gauche+"px";
}
});
});
})(); |
Partager