Tělesa

Capsule

Vytvoří kapsli s hlavní osou podél veřejné osy Z.

x, y a z jsou střed celé kapsle, nikoli spodní bod. Kapsle se skládá z válcové části a dvou polokoulí. Podporuje Dynamic, Static a Kinematic.

Syntaxe#

Syntax
jolt_capsule_create_dynamic(x, y, z, height, radius, options=undefined)
jolt_capsule_create_static(x, y, z, height, radius, options=undefined)
jolt_capsule_create_kinematic(x, y, z, height, radius, options=undefined)

Argumenty#

ArgumentTypPopis
x, y, zRealWorld-space střed celé kapsle.
heightRealCelková tip-to-tip výška podél lokální Z; musí být > 2*radius.
radiusRealPoloměr válce i polokoulí; konečný a > 0.
optionsStructSpolečný options struct.

Native CapsuleShape je orientován podél Y; wrapper jej interně otočí o +90° kolem X na veřejnou Z. Body rotation se aplikuje až nad touto korekcí.

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. height <= 2*radius, nekladný radius, nekonečné hodnoty a neplatné options jsou odmítnuty. Debug draw respektuje tip-to-tip height.

Reusable JoltShape#

GML
var shape = jolt_shape_capsule(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
// Celková výška 2 m, radius 0.45 m, výchozí osa Z.
var capsule = jolt_capsule_create_dynamic(3, 0, 5, 2.0, 0.45, {
    rotation_euler: {x:0, y:0, 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_capsule_create_dynamicjolt_capsule_create_dynamic(x = 0, y = 0, z = 0, height = 2, radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. celková výška >2*radius, radius>0 m, default 2/.5. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.
jolt_capsule_create_kinematicjolt_capsule_create_kinematic(x = 0, y = 0, z = 0, height = 2, radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. celková výška >2*radius, radius>0 m, default 2/.5. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.
jolt_capsule_create_staticjolt_capsule_create_static(x = 0, y = 0, z = 0, height = 2, radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. celková výška >2*radius, radius>0 m, default 2/.5. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.