Primero comentar que esta etiqueta fue desarrollada por Apple para su navegador Safari. Despues la W3C (World Wide Web Consortium) empezo a trabajar con un grupo de empresas entre las que estaba el mismo Apple y decidio adoptar canvas para el lanzamiento de la siguiente version de HTML, es decir HTML5.
¿Y que se puede hacer con canvas?
Basicamente lo que permite canvas es dibujar poligonos de multiples formas, asignarles colores, degradados y mostrar imagenes, todo esto directamente en el navegador, sin necesidad de plugins como flash.
Todo lo anterior parece genial, pero canvas todavia esta en proceso de desarrollo, y tiene algunos inconvenientes, por ejemplo, si dibujamos una linea, no existe un metodo que permita borrar solamente esa linea, para ello tendriamos que borrar todo canvas, o recurrir a otro metodo que permite borrar una seccion cualquiera, pero solo en forma de rectangulo. Tampoco es cuestion de alarmase, ya existen librerias que facilitan mucho todo ese trabajo.
El primer dibujo, un rectangulo azul
Lo primero es crear la etiqueta canvas y asignarle un id de la siguiente forma
Código:
Despues es cuestion de agregar el siguiente codigo javascript, en medio de la etiqueta head:<canvas id="canvas" width="300" height="300"></canvas>
Código:
Como se puede observar lo primero que se hace es obtener el elemento canvas por medio de su id, luego sea crea una variable llamada ctx (canvas context), y se le asigna el metodo getContext(), esta variable es la que permite dibujar.var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); ctx.fillStyle = "blue"; ctx.fillRect(30, 30, 100, 100);
Seguidamente se le asigna un color a ctx y se llamada el metodo fillRect; los dos primeros numeros, son la ubicacion del rectangulo y los dos siguientes el ancho y el alto. El rectangulo se veria asi:
Agregar una imagen
Para desarrollar un juego con una buena interfaz grafica es necesario utilizar imagenes, de modo que voy a agregar una imagen de mario bros que estara almacenada en una carpeta, esto se puede hacer de la siguiente manera:
Código:
Las primeras dos lineas de codigo son iguales que si fueramos a dibujar un rectangulo, luego lo que necesitamos hacer es crear un objeto de tipo Image, a ese objeto le asignamos la ruta de la imagen por medio de la propiedad src.var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var imagen = new Image(); imagen.src = 'Styles/Images/mario.jpeg'; imagen.onload = function () { ctx.drawImage(imagen, 30, 30, 80, 130); }
Luego es necesario asignar el metodo .onload, el cual se ejecutara una vez la imagen este cargada, esta parte es indispensable o sino la imagen no se cargaria en algunos navegadores. Al final se veria asi:
Y eso es todo por hoy, un pequeña introduccion al elemento canvas, espero que haya sido de utilidad.