Colisiones.. Introducción Algo que vemos mucho en bastantes videojuegos, y que por el momento no se ha visto “bien”, son las colisiones, pero, para empezar;

Slides:



Advertisements
Presentaciones similares
CREANDO HABITACIONES Para crear un cuarto, selecciona Add Room en el menu Add. Se muestra la siguiente ventana: : En la parte.
Advertisements

Plano cartesiano JoLL.
Definición de Clases y Variables de referencia.
Problemas resueltos de áreas e integrales definidas
Barreras de la Comunicación
funciones Por: Carlos Alberto García Acosta
MAPAS CONCEPTUALES Consuelo Antía – Julio 2003.
LAS MAQUINAS DE TURING.
JUEGO DE SALÓN “LA GRAN TORMENTA” Ana Fernández Carolina Navarrete
Matemática Básica (CC.)
Aprendizaje de Microsoft® Access® 2010
Access Bases de datos.
PHP-MYSQL OPERADORES EN PHP
El presente material contiene
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
La lista de 100.
DEFINICIÓN MATEMÁTICA DE UNA FUNCIÓN DE VARIABLE REAL.
FUNCIONES MATEMATICAS
GRÁFICAS Y FUNCIONES María José Peña Mártil MATEMÁTICAS
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Función Lineal.
Interfaz Gráfica.
APLICACIONES DE PILAS Estructuras de Datos.
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE Instructor: Ingeniero Adrián Guerrero Taborda
Ingeniero Anyelo Quintero
Operadores de comparación en PHP Programación en Internet II.
Programación de Computadores
GAME MAKER. INTRODUCCIÓN Game Maker es un entorno para el desarrollo de juegos, creado en 1999 por Mark Overmars, profesor del departamento de Ciencia.
Desarrollador Profesional de Juegos Programación III Unidad II Una clase thread para window.
Elseif en PHP Programación en Internet II. Elseif en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa Elseif.
Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos
Cap. 9 Sistemas de Partículas
Tablas de verdad en PHP Programación en Internet II.
Cap. 2 – Movimiento en Una Dimension
PROGRAMACIÓN PROCEDIMENTAL
Material de apoyo Unidad 4 Estructura de datos
El concepto de función Funciones numérico algebraicas.
Cap. 5 – Leyes de Movimiento
el Desplazamiento (Dx)
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
Teoría Cinética. Mecánica Estadística Lunes 11 de junio de 2007.
UCLA – DAC M. Sc. Jorge E. Hernández H.
VALOR ABSOLUTO Y LOS NÚMEROS REALES
Patricio A. Castillo José M. Galarce Agosto 23 de 2008 Segunda Clase.
Programación Básica con NQC Patricio A. Castillo 12/04/2008.
INTRODUCCION A LA PROGRAMACION
Cap. 8 Energía Potencial Conservación de Energía
Estequiometría de reacciones
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
Las fórmulas más usadas en excel
Taller: Inteligencia Computacional
Estadística Reporte Ejecutivo
Introducción al lenguaje PROCESSING para ARDUINO
Estructuras de Decisión
Para aplicaciones.   Una variable es un espacio de memoria en donde se almacenan datos 1. VARIABLES.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
ANTES DE EMPEZAR ES ÚTIL: a)verificar el número total de registros que tiene la tabla (o tablas) con las que vas a trabajar b) revisa todos los datos,
Hablar en Publico Lección 10. Haciendo Transiciones I. ¿Qué queremos decir cuando hablamos de transiciones? Una transición podría ser definida como un.
MEMORIA DINÁMICA.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Décimo Curso de Programación Básica con NQC “Segunda Clase” Cristián Arenas Ulloa Agosto 29 de 2009.
Sistemas de Referencia. Utilizando una filmación de “autitos chocadores” del Parque Rodó de Montevideo.
Page 1 Ciclo de Estructuras de Repetición Carlos Bautista García Unidad VI PROG 2270L.
Cálculo de área por medio de la sumas de Riemann Alumnas: Maciel Gisella, Uliambre Sabrina Profesora: Nancy Debárbora Curso: 3er año del prof. En matemáticas.
Prof. Manuel B. Sánchez.  El origen del término polimorfismo es simple: proviene de las palabras griegas poly (muchos) y morphos (forma) multiforme.
1 Clase 6: control (1ª parte) iic1102 – introducción a la programación.
JOANN GÓMEZ MAX SOLANO RAUL RUSTRIAN ECUACIONES DE SEGUNDO GRADO BUENAS SOMOS JOANN, RAUL Y MAX Y LES PRESENTAMOS EL TEMA ECUACIONES DE SEGUNDO GRADO.
Palabras de uso frecuente 1er grado. soy mí tu / tú.
Transcripción de la presentación:

Colisiones.

Introducción Algo que vemos mucho en bastantes videojuegos, y que por el momento no se ha visto “bien”, son las colisiones, pero, para empezar; ¿Qué es una colisión ? Si lo analizamos bien, podríamos notar que es el contacto entre 2 o más instancias, generalmente provocando una reacción. (Ejemplo: Al chocar con la pared, no podemos avanzar, o al chocar con un enemigo, perdemos parte de la salud.)

GameMaker posee ciertas funciones y variables que nos permiten saber cuándo chocan 2 o más objetos. Las más sencillas de utilizar son: place_empty place_free place_meeting position_empty position_meeting position_change position_destroy Y aunque pueden entenderse de manera casi intuitiva, explicaremos qué hace y cómo funciona cada una de ellas.

Pero antes, hay que recordar ciertos conceptos importantes antes de empezar. En la primera unidad, aunque de forma breve, se vieron las máscaras de colisión, que son básicamente el área del sprite con la cual se puede colisionar. Un ejemplo, es como quedaría aquí:

Como vemos, la máscara aquí tiene forma rectangular, y con un área que va de izquierda a derecha, y desde el pixel 8, hasta el 33. Después, de arriba abajo inicia desde el pixel 0 y termina en el 47, lo que es todo el sprite. Pero, ¿Por qué es importante utilizar máscaras de colisión? Bueno, en sí, un sprite es tan sólo una imagen, y si no se le diera una máscara de colisión, todas las demás instancias en el juego pasarían por encima, o por debajo del objeto que tenga este sprite, comportándose como si el objeto no existiera, ya que lo que hace GameMaker es tomar esta área como la parte “sólida” del objeto.

place_empty(x,y); Recibe los argumentos: x,y Regresa valor booleano. Esta función, revisa si se da una colisión entre el objeto con que es llamado la función, y algún otro que esté en las coordenadas dadas, y si no es así, entonces regresa un valor true. Es decir, si hay un lugar vacío en las coordenadas dadas, se regresa un valor true. place_empty Un ejemplo podría ser: if( place_empty(x+5,y) ){ x+=5; } Este código lo que hace es revisar, si se da una colisión en las coordenadas x+5, y y si es así, se mueve 5 pixeles en x. Nota: Las coordenadas como: x+5, y-5, x*6, y / 8 Se refieren a la posición actual en x o y, afectada por la operación que le sigue. Por ejemplo, si la posición en x tiene un valor de 30, entonces: x+5 representa a un valor de 35. Esto es algo que aplica a cualquier variable, no sólo a las coordenadas X y Y.

place_free(x,y); Recibe: x,y Devuelve: booleano. Funciona de una manera bastante parecida a place_empty, revisando si hay un lugar vacío en la posición x,y. Con la única diferencia de que, place_free(), aplica sólo a objetos con la casilla solid marcada. Es decir, regresa true, si el lugar por el que preguntamos está libre de un objeto con la casilla solid activada. place_free place_meeting(x, y, obj); Recibe: Coordenadas en x, y. Nombre de objeto. Devuelve: Booleano. Tal como las anteriores, revisa si no hay una colisión en la posición dada. Pero, en este caso, la colisión sólo se cumple con el objeto que le enviemos. (ej. Si quisiéramos que revise la colisión, pero sólo con el objeto árbol.)

position_empty(x,y); y position_meeting(x,y,obj); Reciben: Coordenadas en x, y. Nombre de objeto. Devuelven: Booleano. En analogía a place_empty() y place_meeting(); Estas dos nuevas funciones hacen exactamente lo mismo, con la diferencia de que revisan sólo un punto, que es el que le damos con las coordenadas x,y. position_change(x, y, obj, perf); Recibe: Regresa: N/A Esta función, revisará si en la posición x,y existe una instancia cualquiera, y si la hay, cambiará esta instancia por una nueva de un objeto cualquiera (El que enviemos). xCoordenada en x del lugar a revisar. y Coordenada en y del lugar a revisar. Obj Nombre del nuevo objeto. perf Valor booleano, de si se ejecutará el Create del nuevo objeto (true) o no (false).

position_destroy(x,y); Recibe: x,y Regresa: N/A Esta función destruye las instancias que se encuentran en la posición x,y. Hasta ahora, esas son todas las funciones que necesitamos conocer para simular unas colisiones buenas y simples, pero en sí, ¿cómo hacemos una colisión? Una de las maneras más simples es con un condicional, y podríamos definirlo así: if(place_meeting(x, y, obj)){ x = 0; }