Dans le vieil étang
Une grenouille saute
Un ploc dans l'eau !
Basho
Pour me contacter : igrimeau(at)univ-mlv.fr
Vous trouverez à l'adresse suivante l'ensemble de ce TD ainsi qu'un supplément d'exemples : http://developer.mozilla.org/en/docs/Canvas_tutorial.
Initialement introduit par Apple et standardisé par WHATWG, l'élément <canvas> est une extension du standard HTML conçue pour des applications graphiques.
Il est bon de noter que l'élément <canvas> n'est pas supporté par tous les navigateurs. Assurez de posséder au moins Firefox 1.5.
<canvas id="canvas" width="150" height="150">
Votre navigateur ne supporte pas l'élément canevas
</canvas>
Comme vous le constatez l'élément canvas n'est rien d'autre qu'une balise HTML définissant une fenêtre de dessin. Cette zone est accessible via la méthode DOM getContext permettant d'acceder aux fonctions de dessin. Pour l'instant, un seul contexte de dessin est disponible, il s'agit du contexte 2d.
var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d');
Exécutez votre première page :
<html> <head> <title>Canvas tutorial</title> <script type="text/javascript"> function draw(){ var canvas = document.getElementById('tutorial'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); } } </script> <style type="text/css"> canvas { border: 1px solid black; } </style> </head> <body onload="draw();"> <canvas id="tutorial" width="150" height="150"></canvas> </body> </html>
En vous servant des exemples, dessinez un homme en fil de fer à 4 étapes clés d'un mouvement de marche. En jouant cycliquement les 4 représentations de votre bonhomme, on devrait avoir l'impression qu'il est en mouvement.
En vous servant des évènements du clavier vous allez contrôler l'animation. En définissant des écouteurs d'évènements, vous serez en mesure d'intercepter les intéractions clavier de l'utilsateur et exécuter votre fonction d'animation du personnage. Exemple de code :
/* * Fonction de gestion des touches enfoncées */ function doKeyDown(evt){ // fleche du haut switch(evt){ // fleche du haut case 38: perso_avance(); break; // fleche du bas case 40: perso_recule(); break; // par default default: alert("touche non prise en charge"); break; } // end switch } // end function:doKeyDown window.addEventListener('keydown', doKeyDown, true);
Libre à vous de remplacer votre bonhomme de fer par une série d'images animées. Reportez vous au tutoriel pour plus d'informations.