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 prend en charge les articulations (joints) pour la physique en 2D. Une articulation relie deux objets de collision au moyen d’une contrainte. Les types d’articulations pris en charge sont les suivants :
bodyB à se déplacer sur une ligne de bodyA. L’articulation de type roue fournit également un ressort de suspension. Dans Box2D, elle est appelée articulation de type roue (Wheel joint).Pour le moment, les articulations ne peuvent être créées que par programmation à l’aide de physics.create_joint() :
La prise en charge de la création d’articulations dans l’éditeur est prévue, mais aucune date de sortie n’a été fixée.
-- connect two collision objects with a fixed joint constraint (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 })
Le code ci-dessus crée une articulation fixe portant l’identifiant my_test_joint entre les deux objets de collision obj_a#collisionobject et obj_b#collisionobject. L’articulation est reliée à un point situé 10 pixels à droite du centre de l’objet de collision obj_a#collisionobject et à un point situé 20 pixels au-dessus du centre de l’objet de collision obj_b#collisionobject. La longueur maximale de l’articulation est de 20 pixels.
Vous pouvez détruire une articulation à l’aide de physics.destroy_joint() :
-- destroy a joint previously connected to the first collision object
physics.destroy_joint("obj_a#collisionobject", "my_test_joint")
Vous pouvez lire les propriétés d’une articulation à l’aide de physics.get_joint_properties() et les définir à l’aide de physics.set_joint_properties() :
function update(self, dt)
if self.accelerating then
local hinge_props = physics.get_joint_properties("obj_a#collisionobject", "my_hinge")
-- increase motor speed by 100 revolutions per second
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
Vous pouvez lire la force et le couple de réaction appliqués à une articulation à l’aide de physics.get_joint_reaction_force() et de physics.get_joint_reaction_torque().