Aktuální projekt

Prostorové úchyty

Souřadnice vybírají částice aktuálního světového tvaru, nikoli cílové místo. Nulový poloměr vybere nejbližší částici; kladný všechny uvnitř koule. Prázdná či překrývající se oblast selže. Vypnuté úchyty stále rezervují částice až do zničení. Změna hostitele nebo zapnutí zachytí aktuální offsety bez skoku.

Příklad#

GML
anchor = soft.create_attachment(0, 0, 3.5, 0.3);
if (!is_undefined(anchor)) {
    anchor.set_body(support);
    // anchor.set_enabled(false);
    // anchor.destroy();
}

Použití a omezení#

Svět/Static/Kinematic předepisují polohy. Dynamický hostitel používá poddajný obousměrný úchyt s opačnými impulzy a rotací hostitele. Nejde o tuhý svar. Vypne se pouze kolizní dvojice Soft Body–hostitel; ostatní kolize zůstávají. Dynamické úchyty dělí krok světa nejvýše na 1/480 s, s limitem přibližně 64 úseků; měřte náročnost celé scény.

Zničený hostitel vypne úchyty, ale zachová výběr pro nové přiřazení. Zničení Soft Body je odstraní. Staré piny mřížky látky zachovávají původní jednosměrné chování a nemohou přepsat částice prostorových úchytů. Oblast uvolňujte samotným úchytem. Gettery vrací aktuální pozici, počet bodů, hostitele a stav zapnutí.

Přehled API#

Signatury veřejných funkcí a metod. Metody volejte na vrácené instanci; parametry s výchozí hodnotou jsou volitelné.

Související návody#

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
JoltBBMODBox.create_attachmentJoltBBMODBox.create_attachment(x,y,z,radius=0)Světové x/y/z a nezáporný radius, konečné a absolutně ≤ 1e9. radius=0 vybere nejbližší částici aktuální deformace, >0 kouli. Vrací JoltSoftBodyAttachment nebo undefined; prázdný/překrývající se výběr se odmítne i vůči vypnutému attachmentu. Nově vybrané částice jsou připnuté ke světu.
JoltBBMODCloth.create_attachmentJoltBBMODCloth.create_attachment(x,y,z,radius=0)Světové x/y/z a nezáporný radius, konečné a absolutně ≤ 1e9. radius=0 vybere nejbližší částici aktuální deformace, >0 kouli. Vrací JoltSoftBodyAttachment nebo undefined; prázdný/překrývající se výběr se odmítne i vůči vypnutému attachmentu. Nově vybrané částice jsou připnuté ke světu.
JoltBBMODModel.create_attachmentJoltBBMODModel.create_attachment(x,y,z,radius=0)Světové x/y/z a nezáporný radius, konečné a absolutně ≤ 1e9. radius=0 vybere nejbližší částici aktuální deformace, >0 kouli. Vrací JoltSoftBodyAttachment nebo undefined; prázdný/překrývající se výběr se odmítne i vůči vypnutému attachmentu. Nově vybrané částice jsou připnuté ke světu.
JoltBBMODSoftBody.create_attachmentJoltBBMODSoftBody.create_attachment(x,y,z,radius=0)Světové x/y/z a nezáporný radius, konečné a absolutně ≤ 1e9. radius=0 vybere nejbližší částici aktuální deformace, >0 kouli. Vrací JoltSoftBodyAttachment nebo undefined; prázdný/překrývající se výběr se odmítne i vůči vypnutému attachmentu. Nově vybrané částice jsou připnuté ke světu.
JoltBBMODSphere.create_attachmentJoltBBMODSphere.create_attachment(x,y,z,radius=0)Světové x/y/z a nezáporný radius, konečné a absolutně ≤ 1e9. radius=0 vybere nejbližší částici aktuální deformace, >0 kouli. Vrací JoltSoftBodyAttachment nebo undefined; prázdný/překrývající se výběr se odmítne i vůči vypnutému attachmentu. Nově vybrané částice jsou připnuté ke světu.
JoltSoftBodyAttachment.destroyJoltSoftBodyAttachment.destroy()Boolean, opakované zničení je bezpečné. Odstraní pouze helper; nezničí soft body ani hostitelský rigid body. Wind vypne proudění, Force zruší čekající požadavek, Attachment uvolní svůj výběr částic.
JoltSoftBodyAttachment.get_bodyJoltSoftBodyAttachment.get_body()Živý odpovídající host nebo undefined (světové piny, zaniklý host či helper).
JoltSoftBodyAttachment.get_point_countJoltSoftBodyAttachment.get_point_count()Počet vybraných částic; 0 při neplatném helperu. Výběr přetrvává i při vypnutí.
JoltSoftBodyAttachment.get_positionJoltSoftBodyAttachment.get_position()Světová pozice středu vybraných částic {x, y, z} v m; undefined při neplatném helperu.
JoltSoftBodyAttachment.is_enabledJoltSoftBodyAttachment.is_enabled()Boolean; false i při neplatném helperu.
JoltSoftBodyAttachment.is_validJoltSoftBodyAttachment.is_valid()Boolean; helper i jeho soft body musí být živé. Po zničení soft body je helper neplatný.
JoltSoftBodyAttachment.set_bodyJoltSoftBodyAttachment.set_body(body=undefined)Živý JoltBody stejného světa nebo undefined pro světové piny; Boolean. Zachytí současné relativní pozice. Dynamic host používá dynamické kotvy, není to nekonečně těžký světový pin.
JoltSoftBodyAttachment.set_enabledJoltSoftBodyAttachment.set_enabled(enabled)Boolean převod, výsledek Boolean. Vypnutí uvolní částice, ale rezervace výběru zůstane; destroy ji odstraní. Zapnutí zachytí současné pozice.