Está en la página 1de 4

Colisiones Fsicas

Las colisiones te permite disparar acciones cuando dos o mas actores entran
en contacto. Esto nos permite hacer que los personajes puedan chocar con
enemigos o capturar objetos.

Dos tipos de colisiones


En pilas-engine tenemos dos tipos de colisiones, hay colisiones fsicas y
colisiones programadas.
Las colisiones fsicas son aquellas que generan una reaccin que se puede
visualizar como una respuesta fsica, por ejemplo si creamos 5 cajas y las
hacemos rebotar entre s, estas seran colisiones fsicas:

cajas = pilas.actores.Caja() * 5

Podramos decir que las colisiones fsicas son casi automticas, las genera el
mismo motor de fsica que trae pilas-engine sin mucho cdigo.
En cambio, las colisiones programadas son aquellas que tienen una reaccin
por cdigo, y generalmente tienen que ver con la lgica del juego (perder,
ganar puntos, pasar de nivel etc..)
Por ejemplo, una colisin programada sencilla se puede visualizar si creamos
un personaje que se pueda mover con el mouse y se alimente comiendo
bananas:

mono = pilas.actores.Mono()
mono.aprender("Arrastrable")
bananas = pilas.actores.Banana() * 10
def cuando_colisiona(mono, banana):
banana.eliminar()
mono.sonreir()
pilas.colisiones.agregar(mono, bananas, cuando_colisiona)

Modo depuracin fsica


El modo depuracin fsica nos permite observar las figuras fsicas de cada uno
de los actores. Para activar este modo, pods pulsar la tecla F12 o
simplemente hacer click sobre el cono "mostrar figuras fsicas":

Con este modo habilitado, vas a poder observar la figura de colisin que lo
representa:

En color blanco aparecen las figuras fsicas, que al rebotar con otras producirn
una reaccin de choque y rebote. Y de color verde van a aparecer los
sensores.
Los sensores son figuras fscias pero que no generan una reaccin al momento
del choque.

Acceder a las figuras de colisin


En muchos momentos vas a necesitar hacer ajustes sobre las figuras de
colisin. Lo mas comn es cambiar el tamao de las figuras (para ajustarlas al
tamao del actor) o convertir las figuras a sensores.
Para acceder a las figuras de colisin tienes que usar el
atributo figura_de_colisin del actor, o bien cambiar su tamao directamente
cambiando el atributo radio_de_colisin por ejemplo:
mono = pilas.actores.Mono()
mono.radio_de_colision = 30
mono.radio_de_colision = 80
mono.radio_de_colision = 10

Cada vez que asignes un valor al atributo radio_de_colision, pilas va a


generar una circunferencia y la va a colocar como figura de colisin para el
actor.

Cambiando las figuras de colisin


En la mayora de los casos la figura circular es la que mejor se ajusta al area
de un actor.
Sin embargo, hay algunos casos en donde necesitamos cambiar
completamente la figura de colisin por otra.
La forma mas sencilla de cambiar una figura por otra, es crear la figura fsica
primero y luego asignarla a la propiedad figura_de_colision del actor:

Para construir este ejemplo construmos dos actores, al primero lo dejamos tal
cual, pero al segundo le cambiamos la figura de colisin por un rectngulo:
zanahoria_normal = pilas.actores.Zanahoria(x=-100)
zanahoria = pilas.actores.Zanahoria(x=100)
rectangulo = pilas.fisica.Rectangulo(0, 0, 40, 100,
sensor=True, dinamica=False)
zanahoria.figura_de_colision = rectangulo

Colisiones con etiquetas


Ten en cuenta que existe un atajo para definir colisiones usando el concepto de
etiquetas, que se ver en la siguiente pgina de este manual.

También podría gustarte