domingo, 24 de julio de 2016

Hacer un Juego con HTML5 / Canvas. Parte 2.

Un vez que hemos dibujado los elementos del juego en la parte 1, vamos a proceder a colocar el código para permitir rotar el cuadrado al dar un click.

Los ángulos de rotación serán 0, 90, 180, 270, 360, para lo cual vamos a tener una variable global para almacenar el valor actual de rotación, en cada click se aumentara en 90 este valor, si llega a 360 el valor sera establecido a 0, de esta forma tenemos un ciclo continuo.

Todo el contenido de canvas, es una imagen, por lo que si deseamos tener interacción debemos volver a dibujar el contenido del mismo. Para esto vamos a utilizar un animación continua utilizando window.requestAnimationFrame, que nos permite llamar a una función en cada ciclo de animación.

 function play(){
    //1. Limpiar todo el contenido del canvas
    ctx.clearRect(0, 0, canvas.width, canvas.height);  
   
    //2. Dibujar el contenido
    ...
    ctx.rotate((Math.PI / 180) * rotate); 
    square.draw(); 
   
    //3. Continuar con el siguiente ciclo de animacion
    window.requestAnimationFrame(play); 
 }
 
 window.requestAnimationFrame(play);


Antes de dibujar el cuadrado con los triangulos realizamos una rotacion, segun el valor global de la variable rotate. Utilizamos "Math.PI/180 * Grados" para convertir los grados a radianes que utiliza ctx.rotate(radianes)

Vemos el resultado:


Se tiene una falla, al momento de rotar el cuadrado con los triángulos, el eje de rotación es el vértice izquierdo superior, para corregir esto debemos realizar un traslado del eje según el valor del angulo, para lo cual utilizaremos translate.



En la "Hacer un Juego con HTML5 / Canvas. Parte 3.", vamos a completar el código para la caída del circulo y verificación si coincide el color del circulo con el color del triangulo superior.

Related Posts:

  • Hacer un Juego con HTML5 / Canvas. Parte 1. Voy a realizar un serie de post de crear un juego en html5, javascript, canvas. Según como avancen en los post, voy aumentando características hasta tener un juego final. El juego que voy a realizar es un clon de Impos… Read More
  • Aplicaciones Web Utilizando - Ext.js - Parte 2AeroSQL es una herramienta para administrar servidores mysql escrito en PHP, es open source (GPLv3). Los resultados de las consultas SELECTs son visualizadas en una grilla (grid) como un tradicional aplicaciones de escritori… Read More
  • Aplicaciones Web Utilizando - Ext.jsExt.js, Es un framwrork de javascript que nos ofrece una gran cantidad de widgets para crear interfaces de usuario complejas hechas en paginas web igual como las interfaces de usuario de los programas de escritorio.Alguna… Read More
  • Hacer un Juego con HTML5 / Canvas. Parte 2. Un vez que hemos dibujado los elementos del juego en la parte 1, vamos a proceder a colocar el código para permitir rotar el cuadrado al dar un click. Los ángulos de rotación serán 0, 90, 180, 270, 360, para lo cual vamos… Read More
  • Hacer un Juego con HTML5 / Canvas. Parte 3. Realizado los dibujos del juego (Hacer un Juego con HTML5 / Canvas. Parte 1.), y el código para rotar el cuadrado con los triángulos de colores al hacer click (Hacer un Juego con HTML5 / Canvas. Parte 2.), vamos aumentar el… Read More

0 comentarios: