public final class PhysicsWorld extends Object implements com.almasb.ents.EntityWorldListener, org.jbox2d.callbacks.ContactListener
Contains several static and instance methods to convert pixels coordinates to meters and vice versa.
Collision handling unifies how they are processed.
| Modifier and Type | Class and Description |
|---|---|
class |
PhysicsWorld.PhysicsParticleControl
The difference between physics and normal particle entity is that
the former is managed (controlled) by the physics world, the latter
by the particle emitters.
|
| Modifier | Constructor and Description |
|---|---|
protected |
PhysicsWorld(double appHeight,
double ppm) |
| Modifier and Type | Method and Description |
|---|---|
void |
addCollisionHandler(CollisionHandler handler)
Registers a collision handler.
|
void |
beginContact(org.jbox2d.dynamics.contacts.Contact contact) |
void |
endContact(org.jbox2d.dynamics.contacts.Contact contact) |
org.jbox2d.dynamics.World |
getJBox2DWorld()
Note: certain modifications to the jbox2d world directly may not be
recognized by FXGL.
|
void |
onEntityAdded(com.almasb.ents.Entity entity) |
void |
onEntityRemoved(com.almasb.ents.Entity entity) |
void |
onWorldReset()
Resets physics world.
|
void |
onWorldUpdate(double tpf) |
void |
postSolve(org.jbox2d.dynamics.contacts.Contact contact,
org.jbox2d.callbacks.ContactImpulse impulse) |
void |
preSolve(org.jbox2d.dynamics.contacts.Contact contact,
org.jbox2d.collision.Manifold oldManifold) |
RaycastResult |
raycast(javafx.geometry.Point2D start,
javafx.geometry.Point2D end)
Performs a ray cast from start point to end point.
|
void |
removeCollisionHandler(CollisionHandler handler)
Removes a collision handler
|
void |
setGravity(double x,
double y)
Set global world gravity.
|
float |
toMeters(double pixels)
Converts pixels to meters
|
float |
toPixels(double meters)
Converts meters to pixels
|
com.almasb.gameutils.math.Vec2 |
toPoint(javafx.geometry.Point2D p)
Converts a point in pixel space to a point in physics space.
|
javafx.geometry.Point2D |
toPoint(com.almasb.gameutils.math.Vec2 p)
Converts a point in physics space to a point in pixel space.
|
com.almasb.gameutils.math.Vec2 |
toVector(javafx.geometry.Point2D v)
Converts a vector of type Point2D to vector of type Vec2
|
javafx.geometry.Point2D |
toVector(com.almasb.gameutils.math.Vec2 v)
Converts a vector of type Vec2 to vector of type Point2D
|
public org.jbox2d.dynamics.World getJBox2DWorld()
public void onEntityAdded(com.almasb.ents.Entity entity)
onEntityAdded in interface com.almasb.ents.EntityWorldListenerpublic void onEntityRemoved(com.almasb.ents.Entity entity)
onEntityRemoved in interface com.almasb.ents.EntityWorldListenerpublic void onWorldUpdate(double tpf)
onWorldUpdate in interface com.almasb.ents.EntityWorldListenerpublic void onWorldReset()
onWorldReset in interface com.almasb.ents.EntityWorldListenerpublic void beginContact(org.jbox2d.dynamics.contacts.Contact contact)
beginContact in interface org.jbox2d.callbacks.ContactListenerpublic void endContact(org.jbox2d.dynamics.contacts.Contact contact)
endContact in interface org.jbox2d.callbacks.ContactListenerpublic void preSolve(org.jbox2d.dynamics.contacts.Contact contact,
org.jbox2d.collision.Manifold oldManifold)
preSolve in interface org.jbox2d.callbacks.ContactListenerpublic void postSolve(org.jbox2d.dynamics.contacts.Contact contact,
org.jbox2d.callbacks.ContactImpulse impulse)
postSolve in interface org.jbox2d.callbacks.ContactListenerpublic void addCollisionHandler(CollisionHandler handler)
Example:
PhysicsWorld physics = ...
physics.addCollisionHandler(new CollisionHandler(Type.PLAYER, Type.ENEMY) {
public void onCollisionBegin(Entity a, Entity b) {
// called when entities start touching
}
public void onCollision(Entity a, Entity b) {
// called when entities are touching
}
public void onCollisionEnd(Entity a, Entity b) {
// called when entities are separated and no longer touching
}
});
handler - collision handlerpublic void removeCollisionHandler(CollisionHandler handler)
handler - collision handler to removepublic void setGravity(double x,
double y)
x - x componenty - y componentpublic RaycastResult raycast(javafx.geometry.Point2D start, javafx.geometry.Point2D end)
start - start pointend - end pointpublic float toMeters(double pixels)
pixels - value in pixelspublic float toPixels(double meters)
meters - value in meterspublic com.almasb.gameutils.math.Vec2 toVector(javafx.geometry.Point2D v)
v - vector in pixelspublic javafx.geometry.Point2D toVector(com.almasb.gameutils.math.Vec2 v)
v - vector in meterspublic com.almasb.gameutils.math.Vec2 toPoint(javafx.geometry.Point2D p)
p - point in pixel spacepublic javafx.geometry.Point2D toPoint(com.almasb.gameutils.math.Vec2 p)
p - point in physics spaceCopyright © 2016. All rights reserved.