Tělesa

Plane

Vytvoří nekonečnou matematickou collision rovinu pro Static geometrii.

Bod x,y,z leží na rovině a normal míří ven z jejího solid half-space. Plane je vhodná pro jednoduché podlahy, stěny a testovací hranice, když není potřeba konečný Box nebo Mesh.

Syntaxe#

Syntax
jolt_plane_create_static(x, y, z, normal_x, normal_y, normal_z, options=undefined)

Argumenty#

ArgumentTypPopis
x, y, zRealWorld-space bod na rovině a body origin.
normal_x, normal_y, normal_zRealKonečná nenulová lokální normal; automaticky se normalizuje.
optionsStructSpolečné Static body options a half_extent.

Solid strana a extent#

Half-space opačný vůči normal je solid. U běžné podlahy jolt_plane_create_static(0,0,0,0,0,1) je pevná oblast pod XY rovinou a bodies kolidují shora.

options.half_extent má default 1000, musí být konečný a > 0. Omezuje pouze broad-phase discovery; matematickou rovinu nezmění na konečný čtverec. Pokud má collision končit na viditelném okraji, použijte Box nebo Mesh.

Options a návrat#

Vrací Static JoltBody nebo undefined. Relevantní options jsou rotation, rotation_euler, friction, restitution, layer, sensor, center_of_mass_offset a half_extent. Dynamic-only mass nebo velocity selžou atomicky.

Reusable JoltShape#

GML
var shape = jolt_shape_plane(normal_x, normal_y, normal_z,
                             half_extent=1000, cache_key=undefined);
var floor = shape.create_static(x, y, z, options);

shape.create_dynamic() a create_kinematic() jsou odmítnuty. Uložená normal je normalizovaná. jolt_shape_load() podporuje Plane .jcol resources.

Low-Level / Advanced API#

Plane je vystavena přes reusable resource transport, nikoli vyhrazenou low-level body funkci. Použijte jolt_plane_create_static() nebo jolt_shape_plane().

Příklad#

GML
var floor = jolt_plane_create_static(0, 0, 0, 0, 0, 1, {
    half_extent: 40,
    friction: 0.8
});

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_plane_create_staticjolt_plane_create_static(x = 0, y = 0, z = 0, normal_x = 0, normal_y = 0, normal_z = 1, options = undefined)Statická rovina, pozice default 0, normála+Z a half_extent1000m. Nenulová normála se normalizuje, extent>0; JoltBody/undefined.