Anuncios

Bienvenidos sean a este post, en el post anterior creamos el proyecto donde usaremos las fisicas pero hoy nos centraremos en el engine para manejarlas.

Anuncios

Con nuestro proyecto abierto vamos al objeto que identificamos como obj_bloque, en el menu que tenemos para nuestro objeto tenemos un boton denominado Physics

Anuncios
Anuncios

Una vez presionado nos abrira un nuevo cuadro

Anuncios
Anuncios

Como pueden ver vamos a tener varios parametros para modificar las fisicas sobre el objeto pero en este caso veremos dos opciones particulares, la primera sera la densidad (Density) la cual usaremos para justamente establecer como sera su densidad y esto afectara tanto al peso como a su reaccion a los impactos de otros objetos, pero como a este elemento lo usaremos como pared y piso estableceremos su densidad como 0.0, esto le dira al Game Engine que sera completamente pesado y por lo tanto inamovible, nuestro siguiente paso sera modificar la forma de colision y para ello presionaremos a Modify Collision Shape.

Anuncios

Cuando presionemos el boton nos abrira otro cuadro donde podremos la opcion predeterminada de nuestro area de colision, en el caso de nuestro objeto tenemos establecida a Box si se fijan a la izquierda de este cuadro tendran la opcion Box seleccionada si lo presionan se veran estas tres

Anuncios
Anuncios

Como pueden ver tenemos a parte del Box, la opcion Circle y la de Convex Shape, en este caso dejaremos la opcion predeterminada por un tema de facilidad, con esto realizado pasemos al otro objeto llamado obj_pelota, donde tambien le estableceremos las fisicas pero no modificaremos ninguno de los parametros salvo la forma de la colision porque veremos que utilizara de manera predeterminada a Box y debemos pasarla a Circle (Circulo) y verifiquemos que coincida nuestro sprite, una vez realizado esto agregaremos un evento de tipo Collision y lo haremos con el objeto obj_bloque, esto lo haremos asi porque seria mucho mas complejo utilizar las funciones de colision y para este ejemplo haremos algo practico, una vez creado nuestro evento de colision contra el bloque agregaremos la siguiente linea:

physics_apply_force(x, y, 0, -5000);
Anuncios

Esta funcion aplicara una fuerza sobre nuestro objeto permitiendo hacer un efecto de rebote cuando se detecte la colision entre la “pelota” y el “bloque”, sus parametros son los siguientes:

  • Posicion del eje X
  • Posicion del eje Y
  • La fuerza sobre el eje X
  • La fuerza sobre el eje Y
Anuncios
Anuncios

Los dos primeros parametros al ser de posicion lo obtendremos por medio de los valores de x e y de donde ubiquemos el objeto, luego los valores que pasaremos son las fuerzas que ejerceremos sobre el objeto, estos estan medidos en Newtons y para este caso no ejerceremos ninguna fuerza sobre el eje X pero si lo haremos sobre el eje Y, este al ser negativo creara el efecto de rebote, con esto ya tenemos la conducta de nuestro elemento (obj_pelota) cuando colisiona con el elemento de bloque (obj_bloque), solo nos resta hacer un par de modificaciones para probar como funciona nuestro juego.

Anuncios

La primera modificacion que haremos aplica a nuestros objetos creados y para ambos casos debemos tildar la opcion Use Physics como se ve en la siguiente imagen

Anuncios
Anuncios

Esto permite a nuestro objeto trabajar con todas las definiciones que hicimos anteriormente, nuestra siguiente modificacion sera en el Room y para ello debemos ir al Room Editor, mas exactamente en las Propiedades (Properties), busquen la opcion Room Physics, en esta opcion deben tildar la opcion Enable Physics y dejemos las opciones como aparecen por defecto, tal como se ve en la siguiente imagen

Anuncios

Nuestra siguiente modificacion sera cambiar el tamaño del Room, esto tambien se hace en las Propiedades del Room, mas exactamente en las configuracion del Room (Room Settings) y estableceremos un ancho de 384 y un alto de 512, con esto realizado pasemos a la ultima modificacion la cual va a ser agregar unas instancias de nuestros objetos para probar como son afectadas por las fisicas que configuramos recien, para ello les recomiendo agregar los bloques como un piso para establecer el limite y agregamos la pelota en un parte superior del room, les dejo un ejemplo

Anuncios
Anuncios

Con todo esto realizado podemos pasar a probar nuestro juego, compilemos y veamos que sucede mediante el siguiente video

Anuncios

En el video podemos ver el primer ejemplo de como trabajan el engine interno de las fisicas, como el mismo programa se encarga de hacer todos los procesos por nosotros sin necesidad de funciones y condicionales para las conductas de colisiones, en el proximo post lo vamos a hacer mas divertido

Anuncios

En resumen, hoy hemos trabajado con el engine de las fisicas, como debemos indicarle al lenguaje que debe usar las fisicas, hemos visto cual es la funcion que aplica una fuerza sobre las fisicas por medio del evento de colision que utilizamos al comienzo del curso, tambien hemos visto que modificacion debemos hacer para que se utilicen las fisicas en el Room o nivel, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.00