public final class PhysicsEngine extends java.lang.Object implements IUpdateable
move
method
group.
collides
method group can detect a collision at a certain location, for rectangles, or collision aware entities.
Also, there's an overload that takes a Line2D
to perform a basic raycast check.Constructor and Description |
---|
PhysicsEngine()
You should never call this manually! Instead use the
Game.physics() instance. |
Modifier and Type | Method and Description |
---|---|
void |
add(ICollisionEntity entity)
Adds the specified collision aware entity to the physics engine which will make it respect the entity's collision box for upcoming calls.
|
void |
clear()
Clears all previously registered participants in the collision process from this instance.
|
boolean |
collides(double x,
double y) |
boolean |
collides(double x,
double y,
Collision collisionType) |
boolean |
collides(double x,
double y,
ICollisionEntity collisionEntity) |
boolean |
collides(ICollisionEntity collisionEntity) |
boolean |
collides(ICollisionEntity collisionEntity,
Collision collisionType) |
boolean |
collides(java.awt.geom.Line2D line) |
boolean |
collides(java.awt.geom.Line2D line,
Collision collision) |
boolean |
collides(java.awt.geom.Line2D line,
Collision collision,
ICollisionEntity entity) |
boolean |
collides(java.awt.geom.Line2D line,
ICollisionEntity entity) |
boolean |
collides(java.awt.geom.Point2D location) |
boolean |
collides(java.awt.geom.Point2D location,
Collision type) |
boolean |
collides(java.awt.geom.Point2D location,
Collision type,
ICollisionEntity entity) |
boolean |
collides(java.awt.geom.Point2D location,
ICollisionEntity collisionEntity) |
boolean |
collides(java.awt.geom.Rectangle2D rect) |
boolean |
collides(java.awt.geom.Rectangle2D collisionBox,
Collision type) |
boolean |
collides(java.awt.geom.Rectangle2D rectangle,
Collision type,
ICollisionEntity entity) |
boolean |
collides(java.awt.geom.Rectangle2D rect,
ICollisionEntity collisionEntity)
Checks whether the specified rectangle collides with the specified entity.
|
java.awt.geom.Rectangle2D |
getBounds() |
java.util.Collection<java.awt.geom.Rectangle2D> |
getCollisionBoxes() |
java.util.Collection<java.awt.geom.Rectangle2D> |
getCollisionBoxes(Collision type) |
java.util.Collection<ICollisionEntity> |
getCollisionEntities() |
java.util.Collection<ICollisionEntity> |
getCollisionEntities(Collision type) |
boolean |
move(IMobileEntity entity,
Direction direction,
double delta) |
boolean |
move(IMobileEntity entity,
double angle,
double delta)
Moves the specified entity by the delta in the direction of the angle.
|
boolean |
move(IMobileEntity entity,
double x,
double y,
float delta) |
boolean |
move(IMobileEntity entity,
float delta) |
boolean |
move(IMobileEntity entity,
java.awt.geom.Point2D newLocation) |
boolean |
move(IMobileEntity entity,
java.awt.geom.Point2D target,
float delta) |
RaycastHit |
raycast(java.awt.geom.Line2D line) |
RaycastHit |
raycast(java.awt.geom.Line2D line,
Collision collisionType) |
RaycastHit |
raycast(java.awt.geom.Line2D line,
Collision collisionType,
ICollisionEntity entity) |
RaycastHit |
raycast(java.awt.geom.Line2D line,
ICollisionEntity entity) |
RaycastHit |
raycast(java.awt.geom.Point2D point,
double angle) |
RaycastHit |
raycast(java.awt.geom.Point2D start,
java.awt.geom.Point2D target) |
RaycastHit |
raycast(java.awt.geom.Point2D start,
java.awt.geom.Point2D target,
Collision collisionType) |
void |
remove(ICollisionEntity entity)
Removes the specified entity from any collision processing.
|
void |
setBounds(java.awt.geom.Rectangle2D environmentBounds) |
void |
update()
This method is called by the game loop on all objects that are attached to the loop.
|
public PhysicsEngine()
You should never call this manually! Instead use the Game.physics()
instance.
Game.physics()
public void add(ICollisionEntity entity)
If you add a ICollisionEntiy
to your Environment, it will automatically be added to the the PhysicsEngine. There is typically no
need to call this explicitly.
entity
- The collision entity to be added.ICollisionEntity.getCollisionBox()
,
remove(ICollisionEntity)
public void remove(ICollisionEntity entity)
entity
- The entity that is about to be removed.public void clear()
public java.util.Collection<java.awt.geom.Rectangle2D> getCollisionBoxes()
public java.util.Collection<java.awt.geom.Rectangle2D> getCollisionBoxes(Collision type)
public java.util.Collection<ICollisionEntity> getCollisionEntities()
public java.util.Collection<ICollisionEntity> getCollisionEntities(Collision type)
public java.awt.geom.Rectangle2D getBounds()
public void setBounds(java.awt.geom.Rectangle2D environmentBounds)
public boolean collides(java.awt.geom.Line2D line)
public boolean collides(java.awt.geom.Line2D line, Collision collision)
public boolean collides(java.awt.geom.Line2D line, ICollisionEntity entity)
public boolean collides(java.awt.geom.Line2D line, Collision collision, ICollisionEntity entity)
public boolean collides(java.awt.geom.Rectangle2D rect)
public boolean collides(java.awt.geom.Rectangle2D rect, ICollisionEntity collisionEntity)
rect
- The rectangle to check the collision for.collisionEntity
- The entity on which this collision check is based on.public boolean collides(java.awt.geom.Rectangle2D collisionBox, Collision type)
public boolean collides(java.awt.geom.Rectangle2D rectangle, Collision type, ICollisionEntity entity)
public boolean collides(java.awt.geom.Point2D location)
public boolean collides(java.awt.geom.Point2D location, Collision type)
public boolean collides(java.awt.geom.Point2D location, ICollisionEntity collisionEntity)
public boolean collides(java.awt.geom.Point2D location, Collision type, ICollisionEntity entity)
public boolean collides(double x, double y)
public boolean collides(double x, double y, Collision collisionType)
public boolean collides(double x, double y, ICollisionEntity collisionEntity)
public boolean collides(ICollisionEntity collisionEntity)
public boolean collides(ICollisionEntity collisionEntity, Collision collisionType)
public RaycastHit raycast(java.awt.geom.Point2D point, double angle)
public RaycastHit raycast(java.awt.geom.Point2D start, java.awt.geom.Point2D target)
public RaycastHit raycast(java.awt.geom.Point2D start, java.awt.geom.Point2D target, Collision collisionType)
public RaycastHit raycast(java.awt.geom.Line2D line)
public RaycastHit raycast(java.awt.geom.Line2D line, Collision collisionType)
public RaycastHit raycast(java.awt.geom.Line2D line, ICollisionEntity entity)
public RaycastHit raycast(java.awt.geom.Line2D line, Collision collisionType, ICollisionEntity entity)
public boolean move(IMobileEntity entity, double angle, double delta)
entity
- the entityangle
- the angledelta
- the deltapublic boolean move(IMobileEntity entity, Direction direction, double delta)
public boolean move(IMobileEntity entity, double x, double y, float delta)
public boolean move(IMobileEntity entity, float delta)
public boolean move(IMobileEntity entity, java.awt.geom.Point2D newLocation)
public boolean move(IMobileEntity entity, java.awt.geom.Point2D target, float delta)
public void update()
IUpdateable
ClientConfiguration
.update
in interface IUpdateable
ClientConfiguration.setMaxFps(int)