Tělesa

Cylinder

Vytvoří plný válec s hlavní osou podél veřejné osy Z.

x, y a z jsou střed; základna leží v lokální Z=-height/2 a horní plocha v Z=+height/2. Podporuje Dynamic, Static a Kinematic.

Syntaxe#

Syntax
jolt_cylinder_create_dynamic(x, y, z, height, radius, options=undefined)
jolt_cylinder_create_static(x, y, z, height, radius, options=undefined)
jolt_cylinder_create_kinematic(x, y, z, height, radius, options=undefined)

Argumenty#

ArgumentTypPopis
x, y, zRealWorld-space střed/pivot.
heightRealCelá výška podél lokální Z; konečná a > 0.
radiusRealPoloměr v lokální XY rovině; konečný a > 0.
optionsStructSpolečný options struct.

Wrapper předává half_height=height/2. Native Cylinder je orientován podél Y; interní rotace +90° kolem X jej převádí na veřejnou Z.

Vrací JoltBody nebo undefined. Podporuje běžné JoltBody vlastnosti, collision layers, sensor režim, kontakty a raycasty; omezení motion typu se uplatní na síly, mass a velocity. Neplatná pozice, rozměr nebo option vytvoření zruší. Debug draw kreslí celý height a radius kolem transformovaného středu.

Reusable JoltShape#

GML
var shape = jolt_shape_cylinder(height, radius, cache_key=undefined);
shape.create_dynamic(x, y, z, options);
shape.create_static(x, y, z, options);
shape.create_kinematic(x, y, z, options);

Příklad#

GML
var barrel = jolt_cylinder_create_dynamic(0, 3, 4, 1.6, 0.55, {
    mass: 3,
    friction: 0.6,
    rotation_euler: {x:0, y:90, z:0}
});

Ověřené kontrakty operací#

Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.

Symbol / vlastníkSignaturaKontrakt operace
jolt_cylinder_create_dynamicjolt_cylinder_create_dynamic(x = 0, y = 0, z = 0, height = 1, radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. plná výška a radius >0 m, default 1/.5. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.
jolt_cylinder_create_kinematicjolt_cylinder_create_kinematic(x = 0, y = 0, z = 0, height = 1, radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. plná výška a radius >0 m, default 1/.5. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.
jolt_cylinder_create_staticjolt_cylinder_create_static(x = 0, y = 0, z = 0, height = 1, radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. plná výška a radius >0 m, default 1/.5. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.