La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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;

Presentaciones similares


Presentación del tema: "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;"— Transcripción de la presentación:

1 Colisiones.

2 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.)

3 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.

4 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í:

5 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.

6 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.

7 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.)

8 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).

9 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; }


Descargar ppt "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;"

Presentaciones similares


Anuncios Google