Aktuální projekt

Vítr

Na Soft Body existuje jeden pomocník; opakované vytvoření jej vrátí bez zdvojnásobení účinku. Směr se normalizuje a určuje, kam vzduch proudí ve světových osách. Rychlost je v m/s. get_velocity vrací rychlost vzduchu, nikoli částic. Vítr běží automaticky ve fyzikálních krocích včetně přímého jolt_step. Nepotřebuje apply každý snímek.

Příklad#

GML
wind = jolt_soft_body_wind(cloth);
wind.set_direction(1, 0, 0);
wind.set_speed(5);
wind.set_gust_strength(0.3);
wind.set_turbulence(0.2);
wind.set_gust_frequency(0.35);
wind.set_drag(1.2);
wind.set_enabled(true);

Použití a omezení#

Rozsahy: rychlost 0..100, síla poryvů/turbulence 0..1, frekvence 0..10 Hz, odpor 0..5. Nulová rychlost/odpor odstraní účinek. Vypnutí pozastaví čas poryvů, nikoli existující pohyb látky. Síly používají promítnutou aktuální plochu trojúhelníků a relativní rychlost vzduchu z obou stran. Vítr rovnoběžný s rovnou látkou má malý účinek.

Piny/připojené částice nejsou poháněné přímo. Poryvy jsou plynulé deterministické vlny v simulačním čase. Nepřidává se závětří za zdmi, simulace tekutiny ani globální větrné oblasti. JOLT_DEBUG_FORCES nebo set_debug(true) ukáže směr; zničení vlastníka a jolt_stop pomocníka uklidí.

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
jolt_soft_body_windjolt_soft_body_wind(soft)Živé JoltBBMODCloth/JoltBBMODSoftBody. Vrací Wind nebo undefined. Jeden helper na těleso, opakované volání vrací stávající. Při vytvoření je enabled=true: +X, 5 m/s, gust 0.3, turbulence 0.2, frequency 0.35 Hz, drag 1.2.
JoltSoftBodyWind.destroyJoltSoftBodyWind.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.
JoltSoftBodyWind.get_debugJoltSoftBodyWind.get_debug()Uložený Boolean diagnostiky; sám neověřuje platnost.
JoltSoftBodyWind.get_directionJoltSoftBodyWind.get_direction()Kopie uloženého jednotkového světového {x, y, z}; jde o konfigurační getter, sám neověřuje platnost helperu.
JoltSoftBodyWind.get_dragJoltSoftBodyWind.get_drag()Koeficient odporu: uložená konfigurace v bezrozměrné stupnici; sám neověřuje platnost. Nejde o okamžitou rychlost s poryvem.
JoltSoftBodyWind.get_enabledJoltSoftBodyWind.get_enabled()Boolean; false pokud je helper neplatný nebo vypnutý.
JoltSoftBodyWind.get_gust_frequencyJoltSoftBodyWind.get_gust_frequency()Frekvence poryvů: uložená konfigurace v Hz; sám neověřuje platnost. Nejde o okamžitou rychlost s poryvem.
JoltSoftBodyWind.get_gust_strengthJoltSoftBodyWind.get_gust_strength()Síla poryvů: uložená konfigurace v bezrozměrné stupnici; sám neověřuje platnost. Nejde o okamžitou rychlost s poryvem.
JoltSoftBodyWind.get_speedJoltSoftBodyWind.get_speed()Základní rychlost vzduchu: uložená konfigurace v m/s; sám neověřuje platnost. Nejde o okamžitou rychlost s poryvem.
JoltSoftBodyWind.get_turbulenceJoltSoftBodyWind.get_turbulence()Turbulence: uložená konfigurace v bezrozměrné stupnici; sám neověřuje platnost. Nejde o okamžitou rychlost s poryvem.
JoltSoftBodyWind.get_velocityJoltSoftBodyWind.get_velocity()Okamžitý světový vektor proudění {x, y, z} v m/s včetně poryvů, při vypnutí nulový. undefined při neplatném helperu; jednotlivé native chyby je nutné číst zvlášť.
JoltSoftBodyWind.is_validJoltSoftBodyWind.is_valid()Boolean; helper i jeho soft body musí být živé. Po zničení soft body je helper neplatný.
JoltSoftBodyWind.set_debugJoltSoftBodyWind.set_debug(v)Boolean převod; výchozí false. Vrací true/false, vyžaduje živý helper. Pouze diagnostika.
JoltSoftBodyWind.set_directionJoltSoftBodyWind.set_direction(x,y,z)Konečné světové x/y/z, absolutně ≤ 1e9, délka ≥ 1e-6. Normalizuje směr; Boolean, při neplatném helperu false.
JoltSoftBodyWind.set_dragJoltSoftBodyWind.set_drag(v)Koeficient odporu: konečné 0..5 , výchozí 1.2. Boolean; uloží se až po úspěšném nativním nastavení.
JoltSoftBodyWind.set_enabledJoltSoftBodyWind.set_enabled(v)Boolean převod, výchozí true; Boolean úspěchu. Nastavení přetrvává přes kroky, vypnutí nezničí helper.
JoltSoftBodyWind.set_gust_frequencyJoltSoftBodyWind.set_gust_frequency(v)Frekvence poryvů: konečné 0..10 Hz, výchozí 0.35. Boolean; uloží se až po úspěšném nativním nastavení.
JoltSoftBodyWind.set_gust_strengthJoltSoftBodyWind.set_gust_strength(v)Síla poryvů: konečné 0..1 , výchozí 0.3. Boolean; uloží se až po úspěšném nativním nastavení.
JoltSoftBodyWind.set_speedJoltSoftBodyWind.set_speed(v)Základní rychlost vzduchu: konečné 0..100 m/s, výchozí 5. Boolean; uloží se až po úspěšném nativním nastavení.
JoltSoftBodyWind.set_turbulenceJoltSoftBodyWind.set_turbulence(v)Turbulence: konečné 0..1 , výchozí 0.2. Boolean; uloží se až po úspěšném nativním nastavení.