This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold admite articulaciones (joints) para físicas 2D. Una articulación conecta dos objetos de colisión mediante algún tipo de restricción. Los tipos de articulación compatibles son:
bodyB a una línea en bodyA. La articulación de rueda también proporciona un resorte de suspensión. En Box2D se conoce como Wheel joint.Actualmente, las articulaciones solo se pueden crear programáticamente usando physics.create_joint():
Está previsto agregar soporte en el editor para crear articulaciones, pero aún no se ha decidido una fecha de lanzamiento.
-- conecta dos objetos de colisión con una restricción de articulación fija (cuerda)
physics.create_joint(physics.JOINT_TYPE_FIXED, "obj_a#collisionobject", "my_test_joint", vmath.vector3(10, 0, 0), "obj_b#collisionobject", vmath.vector3(0, 20, 0), { max_length = 20 })
Lo anterior creará una articulación fija con id my_test_joint, conectada entre los dos objetos de colisión obj_a#collisionobject y obj_b#collisionobject. La articulación está conectada 10 píxeles a la izquierda del centro del objeto de colisión obj_a#collisionobject y 20 píxeles por encima del centro del objeto de colisión obj_b#collisionobject. La longitud máxima de la articulación es de 20 píxeles.
Una articulación se puede destruir usando physics.destroy_joint():
-- destruye una articulación conectada previamente al primer objeto de colisión
physics.destroy_joint("obj_a#collisionobject", "my_test_joint")
Las propiedades de una articulación se pueden leer usando physics.get_joint_properties() y definir usando physics.set_joint_properties():
function update(self, dt)
if self.accelerating then
local hinge_props = physics.get_joint_properties("obj_a#collisionobject", "my_hinge")
-- aumenta la velocidad del motor en 100 revoluciones por segundo
hinge_props.motor_speed = hinge_props.motor_speed + 100 * 2 * math.pi * dt
physics.set_joint_properties("obj_a#collisionobject", "my_hinge", hinge_props)
end
end
La fuerza y el torque de reacción aplicados a una articulación se pueden leer usando physics.get_joint_reaction_force() y physics.get_joint_reaction_torque().