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 supporta i giunti (joint) per la fisica 2D. Un giunto collega due oggetti di collisione applicando un vincolo. I tipi di giunto supportati sono:
bodyB a una retta su bodyA. Il giunto a ruota fornisce anche una molla di sospensione. In Box2D è chiamato giunto a ruota (Wheel joint).Attualmente puoi creare i giunti soltanto tramite codice, utilizzando physics.create_joint():
È previsto il supporto alla creazione dei giunti nell’editor, ma non è ancora stata stabilita una data di rilascio.
-- 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 })
Il codice precedente crea un giunto fisso con ID my_test_joint che collega i due oggetti di collisione obj_a#collisionobject e obj_b#collisionobject. Il giunto è collegato 10 pixel a destra del centro dell’oggetto di collisione obj_a#collisionobject e 20 pixel sopra il centro dell’oggetto di collisione obj_b#collisionobject. La lunghezza massima del giunto è di 20 pixel.
Puoi distruggere un giunto utilizzando physics.destroy_joint():
-- destroy a joint previously connected to the first collision object
physics.destroy_joint("obj_a#collisionobject", "my_test_joint")
Puoi leggere le proprietà di un giunto utilizzando physics.get_joint_properties() e impostarle utilizzando 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
Puoi leggere la forza e la coppia di reazione applicate a un giunto utilizzando physics.get_joint_reaction_force() e physics.get_joint_reaction_torque().