Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Detener gravedad en physic world[SOLUCIONADO]  (Leído 324 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Dublan

en: Noviembre 30, 2017, 10:52:05 pm
Hola Makeros!

A ver si me podéis ayudar a resolver una duda que tengo, que no consigo resolver por mucho que busco en el foro o en google.

La idea del juego es que será un juego de construcción tipo minecraft, pero 2D con físicas. Para ello he seleccionado en la room la opción de physics_world y la opción de physics en los objetos, y estoy jugando con las colisiones para plantear las posibilidades de la construcción. Con esto, más o menos me apaño para construir en vertical, pero la problemática viene cuando quiero construir en vertical+horizontal. Por poner un ejemplo, imaginar que quiero construir así:



Es decir, usar 3 cubos. El problema viene a la hora de colocar el cubo numero 3, ya que mi intención es eliminar la gravedad y la rotación de solamente ese objeto, pero manteniendo sus propiedades físicas para que siga interactuando con otros objetos, que por ejemplo le cayeran del cielo. La opción que barajé fue la de physics_active=false, pero con esto elimino la interacción con otros objetos con fisicas. Otra opción que probé fue la de añadir fuerzas en sentido inverso a la gravedad, pero claro, luego tendría que eliminarlas (se pueden eliminar o tendría que contrarrestarlas con otras?) si el cubo 3 se soltase del cubo 2, y supongo que habrá alguna opción mas sencilla.

¿Se os ocurre como podría hacerlo?

Mil gracias!!!!
« última modificación: Diciembre 04, 2017, 01:07:01 pm por Dublan »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Dublan

Respuesta #1 en: Diciembre 03, 2017, 07:34:40 pm
A nadie le ha surgido anteriormente esta pregunta?   :'(


 


Desconectado Goganpis

Respuesta #2 en: Diciembre 03, 2017, 11:17:02 pm
Amigo mira no has activado la opcion kinematic para que sea un objeto solido e inmovible por las fisicas, segun lo que lei. si no puedes usar masa colocandola en 0. pero recomiendo el kinematic para no tener problemas a la hora de llamar tal objeto para hacer cualquier script como:

Detectar si esta fuera del limite de 7 bloques horizontales se activa la gravedad, es solo un ejemplo.  ;)

 
Los siguientes usuarios dieron las gracias a este tema: Yuzo


Desconectado Dublan

Respuesta #3 en: Diciembre 04, 2017, 01:06:42 pm
Gracias por la respuesta Goganpis!

Al final, después de mucho investigar he llegado a la solución, que era bastante sencilla.... :-[ Simplemente consistía en usar las variables físicas como:
Código: [Seleccionar]
phy_angular_velocity=0   
phy_speed_x=0
phy_speed_y=0
phy_rotation=0
phy_position_x=phy_position_xprevious
phy_position_y=phy_position_yprevious

Para vuestra info., probé a usar los fixture_bind, pero el rendimiento del juego era nefasto, por lo que lo descarté.


 
Los siguientes usuarios dieron las gracias a este tema: Yuzo