Physik
Beschreibung
Diese Bibliothek enthält Methoden zum Anwenden von Physik und zum Einstellen von Kollidern auf Entitäten.
Funktionen
applyForce
Sie können direkt Kräfte (linear und winklig) auf jedes Objekt mit einem Physik-Kollider anwenden. Diese Kräfte werden bei der nächsten Aktualisierung der Physiksimulation angewendet, die in regelmäßigen Abständen stattfindet. Die Funktion akzeptiert einen 3D-Vektor, um die Richtung und den Betrag der Kraft zu definieren.
Dies ist abhängig von der Häufigkeit der Aufrufe von requestAnimationFrame() oder der Aktualisierungsrate Ihres Geräts.
ecs.physics.applyForce(world, eid, forceX, forceY, forceZ) // -> void
applyImpulse
Diese Funktion wird verwendet, um eine einmalige, momentane Kraft auf einen Physik-Collider anzuwenden, die seine Geschwindigkeit basierend auf dem angegebenen Impulsvektor verändert. Diese Methode eignet sich für Ereignisse, die eine schnelle, einmalige Reaktion erfordern, wie z. B. Springen, Schlagen oder ein plötzlicher Stoß.
ecs.physics.applyImpulse(world, eid, impulseX, impulseY, impulseZ) // -> void
applyTorque
Sie können direkt Kräfte (linear und winklig) auf jedes Objekt mit einem Physik-Kollider anwenden. Diese Kräfte werden bei der nächsten Aktualisierung der Physiksimulation angewendet, die in regelmäßigen Abständen stattfindet. Die Funktion akzeptiert einen 3D-Vektor, um die Richtung und den Betrag der Kraft zu definieren.
Dies ist abhängig von der Häufigkeit der Aufrufe von requestAnimationFrame() oder der Aktualisierungsrate Ihres Geräts.
ecs.physics.applyTorque(world, eid, torqueX, torqueY, torqueZ) // -> void
getWorldGravity
Dies ist eine einfache Getter-Funktion, die die aktuelle Schwerkraft zurückgibt, die auf jedes Objekt in der Szene wirkt. Der Rückgabewert kann sich je nach dem Zeitpunkt der Ausführung der Funktion ändern.
ecs.physics.getWorldGravity(world) // -> Zahl
registerConvexShape
Registrieren Sie eine konvexe Form.
ecs.physics.registerConvexShape(world, vertices) // -> eid der registrierten Form
getLinearVelocity
Ermittelt die lineare Geschwindigkeit eines Objekts.
ecs.physics.getLinearVelocity(world, eid) // -> Zahl
setLinearVelocity
Legt die lineare Geschwindigkeit eines Objekts fest.
ecs.physics.setLinearVelocity(world, eid, velocityX, velocityY, velocityZ) // -> void
setWorldGravity
Stellen Sie die Schwerkraft der Welt ein.
ecs.physics.setWorldGravity(world, gravity) // -> void
unregisterConvexShape
Aufheben der Registrierung einer konvexen Form.
ecs.physics.unregisterConvexShape(world, id) // -> void
Ereignisse
KOLLISION_START_EREIGNIS
Wird ausgesendet, wenn eine Kollision mit einer Entität begonnen hat.
ecs.physics.COLLISION_START_EVENT.data : { other }
Eigenschaften
Eigenschaft | Typ | Beschreibung |
---|---|---|
andere | eid | Der eid der kollidierten Entität |
KOLLISION_ENDE_EREIGNIS
Wird ausgesendet, wenn die Kollision mit einer Entität beendet ist.
ecs.physics.COLLISION_END_EVENT.data : { other }
Eigenschaften
Eigenschaft | Typ | Beschreibung |
---|---|---|
andere | eid | Der eid der kollidierten Entität |