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 108 109 110 111 112 113 114 115
| <!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>HTML5 Casse-Briques</title>
<script src="jquery-latest.js" ></script>
<script>
$(document).ready(function(){
/* Variables */
var x=75;
var y=75;
var rayon_balle=10;
var couleur_balle = "red";
var dx=2; // déplacement en x de la balle à chaque itération
var dy=4; // déplacement en y de la balle à chaque itération
var ctx;
var LARGEUR;
var HAUTEUR;
var palette_largeur;
var palette_hauteur;
var palette_couleur;
var palette_x;
var palette_y;
function init_palette() {
palette_x = LARGEUR/2;
palette_hauteur = 10;
palette_largeur = 100;
palette_couleur = "blue";
}
function init() {
/* rappel en Javascript
var c = document.getElementById("monCanvas");
var ctx = c.getContext("2d");
*/
ctx = $("#monCanvas")[0].getContext('2d');
LARGEUR = $("#monCanvas").width();
HAUTEUR = $("#monCanvas").height();
return setInterval(dessine,25); // dessine la balle à sa nouvelle position toutes les 100 millisecondes
}
function clear() {
// efface le canvas avant de dessiner à une nouvelle position
ctx.clearRect(0,0,LARGEUR,HAUTEUR);
}
function dessineRectangle(x,y,largeur,hauteur,couleur) {
ctx.beginPath();
ctx.fillStyle = couleur;
ctx.fillRect(x,y,largeur,hauteur);
ctx.closePath();
ctx.fill();
}
function dessineBalle() {
// dessine la balle
ctx.fillStyle = couleur_balle;
ctx.beginPath();
ctx.arc(x,y,rayon_balle,0,2*Math.PI,false);
ctx.closePath();
ctx.fill();
}
function dessinePalette() {
// coin supérieur gauche de notre palette se trouve
// en X : palette_x
// en Y : palette au raz du sol => sa valeur en y vaut HAUTEUR - palette_hauteur
// largeur du rectangle = palette_largeur
// hauteur du rectangle = palette_hauteur
// couleur du rectangle = palette_couleur
dessineRectangle(palette_x, HAUTEUR - palette_hauteur, palette_largeur, palette_hauteur, palette_couleur);
}
function dessine() {
clear();
dessineBalle();
dessinePalette();
// rebond sur le sol (on inverse le sens de déplacement en y si y est plus grand que la hauteur du canvas)
// ou
// rebond sur le mur du haut (on inverse le sens de déplacement en y si y est plus petit que 0)
if ((y+dy > HAUTEUR) || (y+dy < 0))
dy = -dy;
// rebond sur le mur droit (on inverse le sens de déplacement en x si x est plus grand que la largeur du canvas)
// ou
// rebond sur le mur gauche (on inverse le sens de déplacement en x si x est plus petit que 0)
if ((x+dx > LARGEUR) || (x+dx < 0))
dx = -dx;
// préparer la nouvelle position de la balle
x+=dx;
y+=dy;
}
function demarrage() {
init();
init_palette();
}
// Appel de la fonction d'initialisation init quand la page est prête
window.onload = demarrage;
});
</script>
</head>
<body>
<h1>HTML5 Casse-Briques</h1>
<canvas id="monCanvas" width="400" height="400" style="border: 1px solid black;">
Texte alternatif si le navigateur ne supporte pas le canvas HTML5
</canvas>
</body>
</html> |
Partager