“Taller de Videojuegos con HTML 5” Dibujando en el Canvas del HTML 5

Slides:



Advertisements
Presentaciones similares
Construcción de un juego con HTML 5 Rogelio Ferreira Escutia.
Advertisements

Rogelio Ferreira Escutia
“Conceptos Básicos” Rogelio Ferreira Escutia. 2 Panorama Mundial Actual.
“Taller de Videojuegos con HTML 5” Rogelio Ferreira Escutia Tengo una idea!!!
Capítulo 7 La API del CANVAS
“Problemas con la seguridad”
Tendencias de Construcción Web
Redes Sociales Rogelio Ferreira Escutia.
“CSS - Texto” Rogelio Ferreira Escutia.
Android TV Rogelio Ferreira Escutia.
Rogelio Ferreira Escutia
“Android – Comunicaciones con HTTP”
“CSS - Colores” Rogelio Ferreira Escutia.
“Tendencias 2015: Foro Económico Mundial”
“Flat Design” Rogelio Ferreira Escutia.
“Tecnologías para Construir el
“HTML – Estructura” Rogelio Ferreira Escutia.
“CSS - Estructura” Rogelio Ferreira Escutia.
“Análisis de la Situación Actual
“HTML – Imágenes” Rogelio Ferreira Escutia.
“Recomendaciones para el Arranque de Clases”
Rogelio Ferreira Escutia
COMPONENTES WEB.
“HTML – Manejo de Texto”
“Taller de Videojuegos con HTML 5” Manejo del Canvas en HTML 5
“Instalación” Rogelio Ferreira Escutia.
“Taller de Videojuegos con HTML 5” Creación del Videojuego “Memoria”
“Arduino - Herramientas” Rogelio Ferreira Escutia
Múltiples Pantallas Rogelio Ferreira Escutia
“Taller de Videojuegos con HTML 5”
Marketing - “Presencia Digital” Rogelio Ferreira Escutia
Rogelio Ferreira Escutia
“Conceptos de Internet de las Cosas” Rogelio Ferreira Escutia
“Arduino - Historia” Rogelio Ferreira Escutia
“Principios de telefonía: características,
“Raspberry Pi - RFID” Rogelio Ferreira Escutia
“Taller de Videojuegos con HTML 5” Animación de objetos con HTML 5
Almacenamiento con File I/O Ejemplo Rogelio Ferreira Escutia
Módulo de Especialidad en
“Proporción Áurea” Rogelio Ferreira Escutia.
“Creación del Hola Mundo”
“Concurso Nacional de Creatividad 2009”
“Tecnologías para construir el Internet de las Cosas”
“Algoritmos en Inteligencia Artificial” Rogelio Ferreira Escutia
Marketing - “Posicionamiento” Rogelio Ferreira Escutia
“Taller de Videojuegos con HTML 5”
“Herramientas” Rogelio Ferreira Escutia
Material para “Internet de las Cosas” Rogelio Ferreira Escutia
Proyecto Final “Plataforma OpenClass para Educación a Distancia”
“Proyectos de Big Data” Rogelio Ferreira Escutia
Conceptos sobre Sistemas Operativos Rogelio Ferreira Escutia
“Funcionamiento” Rogelio Ferreira Escutia.
“Android – Entrada y Procesamiento de Datos”
“Tipos de Antenas” Rogelio Ferreira Escutia.
“Raspberry Pi - Herramientas” Rogelio Ferreira Escutia
“Lenguaje de Programación” Rogelio Ferreira Escutia
Múltiples Idiomas Rogelio Ferreira Escutia
Marketing - “Modelos de Negocio” Rogelio Ferreira Escutia
“Kit de 37 sensores” Rogelio Ferreira Escutia
MPI - “Programación” Rogelio Ferreira Escutia
Marketing - “Análisis de Sitios” Rogelio Ferreira Escutia
“Amazon Web Services - Conceptos”
TALLER JUEGOS EN HTML ENERO 2019.
“Multiplexado y demultiplexado de señales:
Rogelio Ferreira Escutia
“Creación de una calculadora”
“Android - Estructura”
“Android – Gráficos” Rogelio Ferreira Escutia.
“HTML” Rogelio Ferreira Escutia.
Preparándose para el Futuro
Transcripción de la presentación:

“Taller de Videojuegos con HTML 5” Dibujando en el Canvas del HTML 5 Rogelio Ferreira Escutia

Dibujar Rectángulos 2

JavaScript (1) Agregamos la siguiente línea para accesar a nuestra biblioteca de funciones en JavaScript, donde enviaremos todo nuestro código: <script language="javascript" src="js/biblioteca_01.js"></script> 3

Código HTML <!DOCTYPE html> <html> <head> <title>CANVAS</title> <meta charset="utf-8" /> <link rel="stylesheet" href="css/hoja_01.css" /> <script language="javascript" src="js/biblioteca_01.js"></script> </head> <body> <canvas id="miCanvas" width="640px" height="480px"> Tu navegador no soporta CANVAS </canvas> </body> </html> 4

CSS Nuestro código CSS queda de la siguiente manera: /* hoja_01.css */ #miCanvas { border:dotted 2px yellow; background:green; } 5

JavaScript (2) Creamos el archivo”biblioteca_01.js” dentro del subdirectorio “js” y le agregamos la siguiente instrucción para que se ejecute la función “arrancarCanvas” cuando se ejecute la página principal: window.onload = arrancarCanvas; 6

JavaScript (3) Creamos la función “arrancarCanvas” con el código para arrancar el Canvas y mandar llamar a la función “dibujarRectangulo” enviándole la variable del contexto (ctx): function arrancarCanvas(){ var canvas=document.getElementById('miCanvas'); if(canvas&&canvas.getContext){ var ctx=canvas.getContext("2d"); if (ctx) { dibujarRectangulo(ctx); } else { alert("Error al crear el contexto"); } } 7

JavaScript (4) Creamos la función “dibujarRectangulo” con el código para dibujar un rectángulo dentro del Canvas: function dibujarRectangulo(ctx){ //Definición de colores ctx.fillStyle = "yellow"; ctx.strokeStyle = "#ff0000"; ctx.lineWidth = 5; //Rectángulo ctx.fillRect(50, 50, 100, 100); ctx.strokeRect(50,50,100,100); } 8

Código JavaScript completo window.onload = arrancarCanvas; function arrancarCanvas(){ var canvas=document.getElementById('miCanvas'); if(canvas&&canvas.getContext){ var ctx=canvas.getContext("2d"); if (ctx) { dibujarRectangulo(ctx); } else { alert("Error al crear el contexto"); } } function dibujarRectangulo(ctx){ //Definición de colores ctx.fillStyle = "yellow"; ctx.strokeStyle = "#ff0000"; ctx.lineWidth = 5; //Rectángulo ctx.fillRect(50, 50, 100, 100); ctx.strokeRect(50,50,100,100); 9

10

Dibujar Líneas 11

Función JavaScript function dibujarCruz(ctx){ //Definición de ancho de línea ctx.lineWidth=25; //Definición de color de línea ctx.strokeStyle = "#000000"; //Dibujar primera línea ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(640, 480); ctx.stroke(); //Dibujar segunda línea ctx.moveTo(640, 0); ctx.lineTo(0, 480); } 12

13

Dibujar Figuras con Líneas 14

Función JavaScript function dibujarLineas(ctx){ //Definición de colores ctx.fillStyle = "black"; //Inicio de Trayectoria ctx.beginPath(); ctx.moveTo(28, 20); //Dibujar líneas ctx.lineTo(78, 50); ctx.lineTo(28, 78); ctx.lineTo(28, 20); //Definiendo un color ctx.fillStyle = "#0000ff"; //Rellenando la figura ctx.fill(); } 15

16

Dibujar Arcos 17

Función JavaScript function dibujarArcos(ctx){ //Descripcion de lineas ctx.lineWidth = 10; ctx.strokeStyle = "yellow"; ctx.fillStyle = "red"; //Primer arco ctx.beginPath(); ctx.arc(100,150,50,1.1*Math.PI, 1.9*Math.PI); ctx.stroke(); //Segundo arco ctx.arc(250,150,50, 1.1*Math.PI, 1.9*Math.PI,true); //Tercer arco ctx.arc(400,150,50, 0, 2*Math.PI,true); } 18

19

Dibujar Curva de Bezier 20

Función JavaScript function dibujarCurvaBezier(ctx){ //Colores ctx.lineWidth = 10; ctx.strokeStyle = "red"; ctx.fillStyle = "yellow"; //Curva bezier ctx.beginPath(); //Primer punto ctx.moveTo(50,20); //Dibujamos la curva ctx.bezierCurveTo(50,100, 200,100, 200,150); ctx.stroke(); ctx.fillRect(50,20,5,5); //Primer punto tangente ctx.fillRect(50,100,5,5); //Segundo punto tangente ctx.fillRect(200,100,5,5); //Segundo punto ancla ctx.fillRect(200,150,5,5); } 21

22

Cargar Imágenes 23

Función JavaScript function cargarImagen(ctx){ var imagen = new Image(); function procesaImagen(){ ctx.drawImage(imagen,10,10); } imagen.src = "imagenes/playa.jpg"; imagen.onload = function(e){ procesaImagen(); 24

25

Escala de Grises 26

Función JavaScript function escalaGris(ctx){ var imagen = new Image(); function procesaImagen(){ ctx.drawImage(imagen,10,10); var w = imagen.width; var h = imagen.height; var imagenData = ctx.getImageData(10,10,w,h); var data = imagenData.data; /*Escala de grises*/ for(var i=0; i<data.length; i+=4){ var gris = (data[i]+data[i+1]+data[i+2])/3 data[i] = gris; //rojo data[i+1] = gris; //Verde data[i+2] = gris; //Azul } ctx.putImageData(imagenData, 10, 240); imagen.src = "imagenes/playa.jpg"; imagen.onload = function(e){ procesaImagen() 27

28

Dibujar Texto 29

Función JavaScript function dibujarTexto(ctx){ ctx.font = "3em Verdana"; ctx.lineWidth = 1.0; ctx.fillStyle = "blue"; ctx.strokeStyle = "yellow"; ctx.shadowColor = "black"; ctx.shadowOffsetX = 5; ctx.shadowOffsetY = 5; ctx.shadowBlur = 10; ctx.fillText("ROGELIO",35,150); ctx.strokeText("ROGELIO",35,150); } 30

31

Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Correo: rogelio@itmorelia.edu.mx rogeplus@gmail.com Página Web: http://antares.itmorelia.edu.mx/~kaos/ http://www.xumarhu.net/ Twitter: http://twitter.com/rogeplus Facebook: http://www.facebook.com/groups/xumarhu.net/ 32