Tělesa

Tapered Capsule

Vytvoří kapsli orientovanou podél Z s nezávislou velikostí obou zaoblených konců.

Je vhodná pro organické collision volumes, rukojeti, končetiny a další konvexní bodies zužující se k jednomu konci. Veřejný origin leží uprostřed mezi oběma špičkami. Podporuje Dynamic, Static a Kinematic.

Syntaxe#

Syntax
jolt_tapered_capsule_create_dynamic(x, y, z, height, top_radius, bottom_radius, options=undefined)
jolt_tapered_capsule_create_static(x, y, z, height, top_radius, bottom_radius, options=undefined)
jolt_tapered_capsule_create_kinematic(x, y, z, height, top_radius, bottom_radius, options=undefined)

Argumenty#

ArgumentTypPopis
x, y, zRealWorld-space střed mezi dvěma vnějšími špičkami.
heightRealCelková tip-to-tip výška podél lokální Z; musí být větší než dvojnásobek většího radiusu.
top_radiusRealKonečný poloměr horního konce > 0.
bottom_radiusRealKonečný poloměr spodního konce > 0.
optionsStructVolitelné společné body options.

Geometrie a orientace#

Střed horní sféry leží v lokální Z=height/2-top_radius a střed spodní sféry v -height/2+bottom_radius. Wrapper předává native half height rovné části (height-top_radius-bottom_radius)/2, převádí native osu Y na veřejnou Z a kompenzuje interní těžiště, aby veřejný body origin zůstal uprostřed mezi špičkami.

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. Stejné radiusy vytvoří profil podobný běžné Capsule, rozdílné radiusy vytvoří skutečně zúžený tvar. Neplatné rozměry nebo options zruší vytvoření atomicky.

Reusable JoltShape#

GML
var shape = jolt_shape_tapered_capsule(height, top_radius, bottom_radius, cache_key=undefined);
var body = shape.create_dynamic(x, y, z, options);
var static_body = shape.create_static(x, y, z, options);
var kinematic_body = shape.create_kinematic(x, y, z, options);

Reusable resource používá stejnou validaci a lifecycle jako ostatní JoltShape resources. jolt_shape_load() přijímá také platný TaperedCapsule .jcol asset.

Low-Level / Advanced API#

Přímý ergonomický low-level GML creator neexistuje. Shape se přenáší verzovaným resource formátem přes jolt_world_shape_command(); použijte high-level creator nebo jolt_shape_tapered_capsule().

Příklad#

GML
var body = jolt_tapered_capsule_create_dynamic(-2, 0, 6, 4, 0.35, 0.8, {
    mass: 2,
    angular_velocity: {x:0.3, y:0.5, z:0.2}
});

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_tapered_capsule_create_dynamicjolt_tapered_capsule_create_dynamic(x = 0, y = 0, z = 0, height = 2, top_radius = 0.25, bottom_radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. celková výška >2*max(top, bottom radius), kladné poloměry m. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.
jolt_tapered_capsule_create_kinematicjolt_tapered_capsule_create_kinematic(x = 0, y = 0, z = 0, height = 2, top_radius = 0.25, bottom_radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. celková výška >2*max(top, bottom radius), kladné poloměry m. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.
jolt_tapered_capsule_create_staticjolt_tapered_capsule_create_static(x = 0, y = 0, z = 0, height = 2, top_radius = 0.25, bottom_radius = 0.5, options = undefined)Factory odpovídajícího motion type, pozice XYZ default 0 m a options. celková výška >2*max(top, bottom radius), kladné poloměry m. Vrací JoltBody/undefined; chyba options uklidí nově vytvořené těleso. Konečné rozměry, změny přes set_ zachovají identitu.