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 obsługuje łączenia (ang. joints) w fizyce 2D. Łączenie łączy ze sobą dwa obiekty kolizji za pomocą wybranego rodzaju ograniczenia. Obsługiwane rodzaje połączeń to:
Obecnie połączenia można tworzyć tylko programowo za pomocą funkcji physics.create_joint()
:
Wsparcie Edytora do tworzenia połączeń jest planowane, ale nie ustalono jeszcze daty wydania.
-- połącz dwa obiekty kolizyjne za pomocą połączenia liny (fixed joint)
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 })
Powyższy kod utworzy stałe połączenie o identyfikatorze my_test_joint
, połączone między dwoma obiektami kolizyjnymi obj_a#collisionobject
i obj_b#collisionobject
. Połączenie jest ustanowione 10 pikseli na lewo od środka obiektu kolizyjnego obj_a#collisionobject
i 20 pikseli nad środkiem obiektu kolizyjnego obj_b#collisionobject
. Maksymalna długość połączenia wynosi 20 pikseli.
Połączenie można zniszczyć za pomocą funkcji physics.destroy_joint()
:
-- zniszcz połączenie, które było wcześniej podłączone do pierwszego obiektu kolizyjnego
physics.destroy_joint("obj_a#collisionobject", "my_test_joint")
Właściwości połączenia można odczytać za pomocą funkcji physics.get_joint_properties()
i ustawić za pomocą funkcji physics.set_joint_properties()
:
function update(self, dt)
if self.accelerating then
local hinge_props = physics.get_joint_properties("obj_a#collisionobject", "my_hinge")
-- zwiększ prędkość silnika o 100 obrotów na sekundę
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
Siłę reakcji i moment reakcji, które zostały zastosowane do połączenia, można odczytać za pomocą funkcji odpowiednio physics.get_joint_reaction_force()
i physics.get_joint_reaction_torque()
.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB