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
O Defold suporta joints para física 2D. Um joint conecta dois objetos de colisão usando algum tipo de restrição. Os tipos de joint suportados são:
bodyB a uma linha em bodyA. O wheel joint também fornece uma mola de suspensão. No Box2D, é chamado de Wheel joint.Atualmente, joints só podem ser criados programaticamente usando physics.create_joint():
Suporte do editor para criar joints está planejado, mas nenhuma data de lançamento foi definida.
-- conecta dois objetos de colisão com uma restrição de joint fixo (rope)
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 })
O código acima criará um fixed joint com id my_test_joint conectado entre os dois objetos de colisão obj_a#collisionobject e obj_b#collisionobject. O joint é conectado 10 pixels à esquerda do centro do objeto de colisão obj_a#collisionobject e 20 pixels acima do centro do objeto de colisão obj_b#collisionobject. O comprimento máximo do joint é de 20 pixels.
Um joint pode ser destruído usando physics.destroy_joint():
-- destrói um joint previamente conectado ao primeiro objeto de colisão
physics.destroy_joint("obj_a#collisionobject", "my_test_joint")
As propriedades de um joint podem ser lidas usando physics.get_joint_properties() e definidas 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 a velocidade do motor em 100 revoluções 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
A força e o torque de reação aplicados a um joint podem ser lidos usando physics.get_joint_reaction_force() e physics.get_joint_reaction_torque().