Tengo un objeto con físicas y quiero que haya un punto por el que no se mueva. Es decir, que la gravedad y las colisiones actuen sobre el pero que nunca se mueva por el punto en el que está enganchado. Como una palanca.
Mas o menos esto: http://docs.yoyogames.com/source/dadiospice/002_reference/physics/joints/physics_joint_revolute_create.html
Pero que no necesite estar unido a otro objeto.
Cita de: venus en Octubre 22, 2015, 06:14:02 PM
Pero que no necesite estar unido a otro objeto.
No he hecho pruebas de esto específicamente, pero no creo que se pueda
con un único objeto. El sistema Box2D trabaja en base a simulación. Una vez que el objeto está definido y se coloca en la habitación, el objeto (solitario, sin punto de anclaje ni unión) va a reaccionar a las fuerzas que actúen sobre él, y (me supongo) como lo haría un objeto en la vida real, si la fuerza es suficiente, una colisión (por cualquier lado/punto) lo va a mover.
Si quieres que el objeto se comporte como una unión con giro, creo que sí o sí necesitas otro objeto para anclarlo.
Lo que entendi de tu pregunta es que quieres un objeto que se mueva pero que no lo afecte la gravedad; es decir, "Cinematico".
Tienes que crear un objeto y colocar la densidad con un valor de 0; esto lo convierte en un objeto "Estático", pero si en algún evento colocas un función de movimiento como phy_speed_x, phy_speed_y o phy_rotation; el objeto se convertirá en un objeto "Cinemático".
Ej: Coloca en el evento step del objeto phy_rotation += 1; y el objeto girara sentido horario un grado por paso.
y en el evento de colisión solo tienes que colocar una acción.
Ej: Coloca en un codigo //Colision y listo.
Nota: El objeto colisionara con otros objetos pero no se moverá ya que es un objeto "Cinemático"
Aqui se explica como se comportan los objetos "Cinematicos"
http://docs.yoyogames.com/source/dadiospice/002_reference/physics/fixtures/physics_fixture_set_kinematic.html
Lo siento, no busco eso. Lo que me refiero es un objeto que pueda girar por impactos pero que esté "sujeto" al mapa por un punto.
Algo así como una rueda en una pared o la aguja de una brújula. No se si me explico.
Aquí tienes un ejemplo, Cambia el evento de colisión del "obj_engrane" con el objeto que quieras que colisione.