Taller de Videojuegos con HTML 5 Animación de objetos con HTML 5

Documentos relacionados
Taller de Videojuegos con HTML 5 Creación del Videojuego Memoria

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

Taller de Videojuegos con HTML 5 Creación del Videojuego Space Invaders

Rogelio Ferreira Escutia

DISEÑO WEB CSS CON DOS, TRES O MÁS COLUMNAS CON FLOAT. WIDTH EN PORCENTAJES NO FUNCIONA? TIPOS DE ANCHO. EJEMPLOS. (CU01036D)

PROPIEDADES VISIBILITY (VISIBLE, HIDDEN, COLLAPSE) Y OVERFLOW CSS. SCROLL. OVERFLOW- X Y OVERFLOW-Y. EJEMPLOS (CU01038D)

ESTRUCTURAS DE CONTROL REPETITIVAS

Ganancia y Polarización. Rogelio Ferreira Escutia

OBJETO WINDOW JAVASCRIPT. PROPIEDADES: NAME, INNERWIDTH, LENGTH,, OPENER, OUTERHEIGHT, PAGEXOFFSET, SCREENX (CU01173E)

HTML. Rogelio Ferreira Escutia

Patrones de Radiación. Rogelio Ferreira Escutia

JAVASCRIPT CREATEELEMENT, CREATETEXTNODE, APPENDCHILD. MODIFICAR PROPIEDAD ONCLICK CON JAVASCRIPT (CU01140E)

Programación Web. Presentación del Curso. Rogelio Ferreira Escutia

Introducción a la Web

JavaScript. Rogelio Ferreira Escutia

Tema 3, parte 5. Estilos dinámicos. Texto. Cambio de estilos. Animaciones.

Texto en movimiento. <MARQUEE> Texto que se desplaza </MARQUEE>

Z-INDEX CSS NO FUNCIONA? CONTROL DE SUPERPOSICIÓN DE ELEMENTOS COMO CAPAS, DIV O IMÁGENES (CU01039D)

WHILE JAVASCRIPT. DO WHILE. CONTINUE PARA SALTAR BUCLE. BUCLES CON LABEL (ETIQUETA O NOMBRE). EJEMPLOS (CU01132E)

FOR JAVASCRIPT (BUCLES) CONOCER TAMAÑO DE UN ARRAY CON LENGTH. BREAK PARA DETENER EJECUCIÓN. EJEMPLOS Y EJERCICIOS (CU01131E)

Librerías JavaScript Processing.js

TEXT-ALIGN, COLOR, TEXT- DECORATION, TEXT- INDENT, WHITE-SPACE NOWRAP, PRE, PRE- WRAP, PRE-LINE O NORMAL (CU01040D)

FUNDAMENTOS DE ROBÓTICA. Maestro: Ing. Marco Antonio López Paredes REPORTE DE PROGRAMA: ANALIZAR LOS OBSTACULOS DE ROBOTS EN UN TABLERO

Social Media. Rogelio Ferreira Escutia

Herramientas para construcción y prueba de sitios Web. Rogelio Ferreira Escutia

Producción Digital I. Lic. Wenceslao Zavala 7 de Junio 2018

Introducción al desarrollo web (idesweb) - 3 a ed.

Desarrollo de Aplicaciones Web con PHP. Javier Enciso

Conceptos Teóricos de HTML5 (material extra adicional libro):

MÉTODOS DE WINDOW JAVASCRIPT. EFECTOS. CONFIRM, PROMPT, OPEN, MOVEBY, MOVETO, FOCUS, RESIZETO, CLOSE (CU01174E)

Three.js-ESP Documentation. Versión latest

Telecomunicaciones. Presentación del Curso. Rogelio Ferreira Escutia

STATIC JAVASCRIPT. PROPIEDADES Y MÉTODOS ESTÁTICOS O DE CLASE. EJERCICIO. CÓDIGO EJEMPLOS BÁSICOS (CU01148E)

IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E)

Android - Estructura. Rogelio Ferreira Escutia

SUBRAYAR CON MARCATEXTO EL PARRAFO DONDE ENCONTRÓ LA PREGUNTA LAS RESPUESTAS LAS ENCUENTRAS DE LA PAG 26 A LA 96 DEBE COPIAR PREGUNTA Y RESPUESTA

Características de JavaScript

CAPTURAR EVENTOS DE TECLADO JAVASCRIPT. TECLA PULSADA. FROMCHARCODE. KEYCODE, WICH. (CU01161E)

CSS. Rogelio Ferreira Escutia

Roatan Bilingual School

Atributos de aplicaciones basadas en WEB. Rogelio Ferreira Escutia

Vamos a describir un lenguaje HTML y CSS resumido, sólo con unos ciertos mínimos, para uso en el programa Sénior.

CSS 3. Diseño Web Avanzado. Nicolás Torre

API CANVAS HTML Y JAVASCRIPT. EJEMPLOS. DIBUJAR CÍRCULOS, FORMAS, GRÁFICOS, ANIMACIONES, JUEGOS, ETC. (CU01195E)

DEGRADADOS CSS. EFECTO LINEAL Y RADIAL. LINEAR-GRADIENT. ANGULOS CSS: UNIDADES ANGULARES DEG, GRAD, TURN, RAD. (CU01060D)

JAVASCRIPT: ACCEDER A ELEMENTOS POR ID. GETELEMENTBYID. DOCUMENT.ALL. CAMBIAR IMAGEN IMG SRC (CU01127E)

Además la app tiene que tener unos botones de Start and Reset y debe de ser capaz de contar los puntos.

Estructura General y Estilos Propios

Codificación de animaciones Trabajo con imágenes, figuras y otros tipos de gráficos Gestión de datos usando LocalStorage

CSS. Añadir estilos a las páginas web

Dibujar con HTML5 y JavaIO y PostrgreSQL JDBC

CSS. Página 1/16. Atributo id #texto1 {font-size: 20px;} <p id= texto1 >Texto</p> p:nth-child(2) { background: # }

CÓMO INICIAR UNA SESIÓN DE CONTROL REMOTO BAJO DEMANDA

Práctica No. 6. Manejo de Eventos con Javascript

Manual de uso para desarrolladores Módulo generador de mapas dinámicos de multipuntos

SWITCH JAVASCRIPT. SELECCIÓN ENTRE ALTERNATIVAS. DIAGRAMA DE FLUJO Y EJEMPLO DE APLICACIÓN. (CU01120E)

QUERYSELECTORALL JAVASCRIPT Y QUERYSELECTOR. ACCEDER A ELEMENTOS POR SELECTORES CSS. EJEMPLOS (CU01134E)

INFORMACION SOBRE LAS CARRERAS QUE OFRECE EL DSC. Rogelio Ferreira Escutia

EFECTOS JAVASCRIPT VISUALES, DE IMÁGENES, TEXTO... RECURSIÓN. SETTIMEOUT NO FUNCIONA EN BUCLES FOR, WHILE,? (CU01166E)

EJEMPLOS JAVASCRIPT OPERADORES INCREMENTO Y DECREMENTO. ASIGNACIÓN Y ASIGNACIÓN COMPUESTA. (CU01118E)

Cómo se define? selector {propiedad1: valor1; propiedad2: valor2}

Rogelio Ferreira Escutia

JAVASCRIPT VALIDAR CAMPO TEXTO NO VACÍO. QUE VALOR SEA NUMÉRICO. O CORREO ELECTRÓNICO EN FORMULARIOS. EJEMPLOS (CU01182E)

Espectros de Frecuencia. Rogelio Ferreira Escutia

CÓMO CREAR EL MODULO DE LOGÍN

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

HTMLELEMENT JAVASCRIPT. MÉTODOS FOCUS, BLUR. SUBMIT FORMULARIOS: DETENER ENVÍO. ONSUBMIT RETURN. EJEMPLOS. (CU01181E)

CSS VERTICAL-ALIGN MIDDLE NO FUNCIONA? CENTRAR VERTICALMENTE UNA IMAGEN, TEXTO, DIV, ETC. EJEMPLOS (CU01043D)

API GEOLOCATION Y API GOOGLE MAPS JAVASCRIPT. EJEMPLOS. INSERTAR MAPAS INTERACTIVOS, SATÉLITE, ETC. EN WEBS. EFECTOS. (CU01197E)

DRUIDA OPAC MOVIL MULTILENGUAJE

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

MARCO (FRAME) Los frames se consiguen con las etiquetas <FRAMESET> y <FRAME>.

Resumen PDF de ejercicios Dentro de los recursos están videos y archivos HTML, JavaScript y PHP comentados

Producción Digital I. Lic. Wenceslao Zavala 10 de Octubre 2018

Creación del Hola Mundo en Android Studio. Rogelio Ferreira Escutia

Conceptos de Big Data. Rogelio Ferreira Escutia

PEQUEÑOS TRUCOS PARA LA REALIZACIÓN DE UNA WEB CON HTML. <title>seguridad Informática por nombre y apellido alumno</title>

Lo básico de Javascript

DHTML: Parte 2 DOM. Introducción al desarrollo web. Laura Sirvent Collado Estudiante de Ingeniería Multimedia Universidad de Alicante (España)

Curso de. HTML 5 y CSS 3. Por: Ing. Ubaldo Acosta.

A continuación el código del formulario Registro.html y del archivo validar.js de javascript:

XP Extreme Programming. Rogelio Ferreira Escutia

Evolución en la Construcción de Sistemas Distribuidos. Rogelio Ferreira Escutia

Imágenes de fondo [background-image] La propiedad CSS background-image se usa para insertar una imagen de fondo.

GUÍA DE TRABAJO N 4 - DESARROLLO WEB Educación Media Fortalecida SED/SENA Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

Programa Saiotek 2006 SMARTLAB. Entorno de Trabajo Inteligente Colaborativo y Programable

Catedra de Base de Datos

FUNCIÓN EVAL JAVASCRIPT. GETELEMENTSBY CLASSNAME. EJEMPLO CÓDIGO CALCULADORA SIMPLE (CU01133E)

Problema 1. Pseudocódigo. 1.Inicio 2. Ed a edad 3. Ant a antigüedad 4. Pedir Ed, Ant

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

JavaScript. PDF created with pdffactory trial version (c) Juan Carlos Cano Todos los derechos reservados

IMAGE JAVASCRIPT. NEW IMAGE. COMPLETE, NATURALWIDTH. OBTENER TODAS LAS IMÁGENES DE UNA WEB CON DOCUMENT.IMAGES (CU01186E)

Browserify (práctica)

Fábrica de los videojuegos

Tutorial de YUI. La librería WireIt trabaja con YUI(Yahoo User Interfaz). Esta es una librería desarrollada por Yahoo y es un FrameWork de JavaScript.

Tema. Objetivos. Administrar la interfaz gráfica de documentos HTML con CSS. Material a utilizar.

SOLUCIONES EJERCICIOS DOM HTML

ESCUELA SUPERIOR DE HUEJUTLA PRIMITIVAS BÁSICAS TRIDIMENSIONALES EN SISTEMAS DE REALIDAD VIRTUAL CON X3DOM

Transcripción:

Taller de Videojuegos con HTML 5 Animación de objetos con HTML 5 Rogelio Ferreira Escutia

Animación de una pelotita (estructura inicial) 2

Estructura La estructura de nuestro proyecto queda de la siguiente manera: animacion_pelotita.htm (arranque) pelotita.css (diseño) pelotita.js (funciones) 3

animacion_pelotita.htm <!DOCTYPE html> <html> <head> <title>animación Pelotita</title> <meta charset="utf-8" /> <link rel="stylesheet" href="css/pelotita.css" /> <script language="javascript" src="js/pelotita.js"></script> </head> <body> <canvas id="micanvas" width="500px" height="300px"> Tu navegador no soporta CANVAS </canvas> </body> </html> 4

pelotita.css /* pelotita.css */ #micanvas { border: dotted 2px yellow; background: green; 5

pelotita.js // // pelotita.js // //Variables Globales var ctx; window.onload = arrancarcanvas; function arrancarcanvas(){ var canvas=document.getelementbyid('micanvas'); if(canvas&&canvas.getcontext){ ctx=canvas.getcontext("2d"); if (ctx) { //Aquí va a ir el código JavaScript else { alert("error al crear el contexto"); 6

Mover Pelotita 7

Declarar Variables Globales (js) var ctx; var radio = 10; var bolax = 50; var bolay = 100; 8

Configurar Anchura y color (js) ctx.linewidth = radio; ctx.fillstyle = "red"; 9

Función para mover la pelotita (js) function mueve(){ bolax+=4; ctx.beginpath(); ctx.arc(bolax,bolay, radio, 0, 2*Math.PI, true); ctx.fill(); 10

Llamar a la función y ejecutarla cada segundo (js) mueve(); setinterval(mueve,60); 11

Codigo completo (pelotita.js) var ctx; var radio = 10; var bolax = 50; var bolay = 100; window.onload = arrancarcanvas; function arrancarcanvas(){ var canvas=document.getelementbyid('micanvas'); if(canvas&&canvas.getcontext){ ctx=canvas.getcontext("2d"); if (ctx) { ctx.linewidth = radio; ctx.fillstyle = "red"; mueve(); setinterval(mueve,60); else { alert("error al crear el contexto"); function mueve(){ bolax+=4; ctx.beginpath(); ctx.arc(bolax,bolay, radio, 0, 2*Math.PI, true); ctx.fill(); 12

13

Pintar y Borrar Pelotita 14

Se agregan variables globales Para el canvas y el avance De la pelotita var ctx; var canvas; var radio = 10; var bolax = 100; var bolay = 100; var dx = 4; 15

Se modifica la función mueve para borrar todo el canvas y volver a pintar la pelotita function mueve(){ ctx.clearrect(0,0,canvas.width, canvas.height); bolax+=dx; ctx.beginpath(); ctx.arc(bolax,bolay, radio, 0, 2*Math.PI, true); ctx.fill(); 16

17

Nuevo código completo (pelotita.js) var ctx; var canvas; var radio = 10; var bolax = 100; var bolay = 100; var dx = 4; window.onload = arrancarcanvas; function arrancarcanvas(){ canvas=document.getelementbyid('micanvas'); if(canvas&&canvas.getcontext){ ctx=canvas.getcontext("2d"); if (ctx) { ctx.linewidth = radio; ctx.fillstyle = "red"; mueve(); setinterval(mueve,60); else { alert("error al crear el contexto"); function mueve(){ ctx.clearrect(0,0,canvas.width, canvas.height); bolax+=dx; ctx.beginpath(); ctx.arc(bolax,bolay, radio, 0, 2*Math.PI, true); ctx.fill(); 18

Detección de colisiones 19

Se agregan nuevas variables globales para controlar los límites var ctx; var canvas; var radio = 10; var bolax = 100; var bolay = 100; var dx = 4; var ancho, largo; var limitederecha, limiteizquierda; 20

Se inicializan los límites dentro de la Función arrancarcanvas ancho = canvas.width; alto = canvas.height; limitederecha = ancho - radio; limiteizquierda = radio; 21

Se modifica la función mueve para que antes de pintar, verifique que la pelotita no salga de la pantalla function mueve(){ ctx.clearrect(0,0,canvas.width, canvas.height); verifica(); ctx.beginpath(); ctx.arc(bolax,bolay, radio, 0, 2*Math.PI, true); ctx.fill(); 22

Se crea la función verifica, para revisar Si la pelotita abandona los límites, iniciar un incremento o decremento function verifica(){ var nbolax = bolax + dx; if(nbolax > limitederecha){ dx *= -1; nbolax = limitederecha; if(nbolax < limiteizquierda){ dx *= -1; nbolax = limiteizquierda; bolax = nbolax; 23

24

Detección de colisiones con movimientos horizontales y verticales 25

Se agregan nuevas variables globales para controlar los límites y deplazamientos horizontales y verticales var ctx; var canvas; var radio = 10; var bolax = 100; var bolay = 100; var dx = 4; var dy = 4; var ancho, largo; var limitederecha, limiteizquierda, limitearriba, limiteabajo; 26

Se inicializan los tamaños y los límites de la pantalla ancho = canvas.width; alto = canvas.height; limitederecha = ancho - radio; limiteizquierda = radio; //Calculamos los limites de arriba y abajo limitearriba = radio; limiteabajo = alto - radio; 27

Se modifica la función verifica function verifica(){ var nbolax = bolax + dx; var nbolay = bolay + dy; if(nbolax > limitederecha){ dx *= -1; nbolax = limitederecha; if(nbolax < limiteizquierda){ dx *= -1; nbolax = limiteizquierda; //Calculamos la nueva coordenada en Y if(nbolay > limiteabajo){ dy *= -1; nbolay = limiteabajo; if(nbolay < limitearriba){ dy *= -1; nbolay = limitearriba; bolax = nbolax; bolay = nbolay; 28

29

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: Facebook: http://twitter.com/rogeplus http://www.facebook.com/groups/xumarhu.net/ 30