public class CollisionBox extends Rectangle implements CollisionShape
Rectangle
that allows for interpolation. Game
objects can use this class to move around the game world and retrieve the
appropriate rendering coordinates after interpolating between the previous
and current position.Constructor and Description |
---|
CollisionBox() |
CollisionBox(float x,
float y,
float width,
float height) |
CollisionBox(int id) |
CollisionBox(int id,
float x,
float y,
float width,
float height) |
Modifier and Type | Method and Description |
---|---|
void |
add(float x,
float y)
Adds components to the position of this
Shape |
<T extends Positionable> |
addPostionChangeListener(PositionChangeListener<T> listener)
Adds a
PositionChangeListener to be notified of coordinate
changes |
<T extends Sizeable> |
addSizeChangeListener(SizeChangeListener<T> listener)
Adds a
SizeChangeListener to be notified of size changes |
void |
draw(Graphics g)
Draws this shape using a
Graphics instance |
void |
fill(Graphics g)
Fills this shape using a
Graphics instance |
void |
forceTo(float x,
float y)
Sets the current x and y coordinate to the specified x and y and force updates the
rendering position to match
|
void |
forceTo(float x,
float y,
float width,
float height)
Sets the current bounds to the specified bounds and force updates the
rendering bounds to match
|
void |
forceTo(Rectangle rectangle) |
void |
forceToHeight(float height)
Sets the current height to the specified height and force updates the
rendering bounds to match
|
void |
forceToWidth(float width)
Sets the current width to the specified width and force updates the
rendering bounds to match
|
float |
getDistanceTo(Positionable positionable)
Returns this distance between this object's x,y coordinates and the
provided
Positionable 's xy coordinates |
int |
getId()
Returns the unique id of this object
|
int |
getRenderHeight() |
float |
getRenderRotation() |
int |
getRenderWidth() |
int |
getRenderX()
Returns the render x coordinate of this object
|
int |
getRenderY()
Returns the render y coordinate of this object
|
Shape |
getShape()
Returns the underlying
Shape instance |
void |
interpolate(GameContainer gc,
float alpha)
Interpolate between the previous and current state
|
void |
moveTowards(float x,
float y,
float speed)
Moves this
Positionable towards a coordinate |
void |
moveTowards(Positionable positionable,
float speed)
Moves this
Positionable towards another Positionable |
void |
preUpdate()
This method needs to be called at the start of each frame
before any changes are made to this object
|
<T extends Positionable> |
removePositionChangeListener(PositionChangeListener<T> listener)
Removes a
PositionChangeListener to stop it being notified of
coordinate changes |
<T extends Sizeable> |
removeSizeChangeListener(SizeChangeListener<T> listener)
Removes a
SizeChangeListener to stop it being notified of size
changes |
void |
rotate(float degrees)
Rotates this
Shape by a specified amount of degrees with its
first point as the origin |
void |
rotateAround(float centerX,
float centerY,
float degrees)
Rotates this
Shape by a specified amount of degrees around a
specified point |
void |
scale(float scale)
Scales the radius of this shape.
|
void |
set(float x,
float y)
Sets the x and y coordinate of this object
|
Rectangle |
set(float x,
float y,
float width,
float height) |
void |
set(Rectangle rectangle) |
void |
set(com.badlogic.gdx.math.Vector2 position) |
Rectangle |
setHeight(float height) |
void |
setRadius(float radius)
Sets the radius of this shape.
|
void |
setRotation(float degrees)
Sets the rotation of this
Shape with its first point as the
origin |
void |
setRotationAround(float centerX,
float centerY,
float degrees)
Sets the rotation of this
Shape with a specified point as the
origin |
void |
setRotationAround(Point center,
float degrees)
Sets the current rotation of the shape around a center point
|
Rectangle |
setSize(float sizeXY) |
Rectangle |
setSize(float width,
float height) |
Rectangle |
setWidth(float width) |
void |
setX(float x)
Sets the x coordinate of this object
|
void |
setY(float y)
Sets the y coordinate of this object
|
void |
subtract(float x,
float y)
Subtracts components from the position of this
Shape |
java.lang.String |
toString() |
void |
update(GameContainer gc,
float delta)
Updates the game screen
|
contains, contains, contains, contains, contains, contains, copy, edgeIterator, getCenterX, getCenterY, getDistanceTo, getDistanceTo, getHeight, getMaxX, getMaxY, getMinX, getMinY, getNumberOfSides, getPolygon, getRotation, getVertices, getWidth, getX, getY, intersection, intersects, intersects, intersects, intersects, intersects, intersects, intersects, intersectsLineSegment, intersectsLineSegment, intersectsLineSegment, isCircle, lerp, translate
intersects
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
contains, contains, intersects, intersects, intersectsLineSegment, intersectsLineSegment
getDistanceTo, getDistanceTo, getX, getY
public CollisionBox()
public CollisionBox(int id)
public CollisionBox(float x, float y, float width, float height)
public CollisionBox(int id, float x, float y, float width, float height)
public void preUpdate()
CollisionShape
preUpdate
in interface CollisionShape
public void update(GameContainer gc, float delta)
Updatable
update
in interface Updatable
gc
- The GameContainer
of the gamedelta
- The time in seconds since the last updatepublic void interpolate(GameContainer gc, float alpha)
Updatable
interpolate
in interface Updatable
alpha
- The interpolation alpha valuepublic void draw(Graphics g)
Shape
Graphics
instancedraw
in class Rectangle
g
- The Graphics
context to render withShape.draw(Graphics)
public void fill(Graphics g)
Shape
Graphics
instancepublic <T extends Positionable> void addPostionChangeListener(PositionChangeListener<T> listener)
Positionable
PositionChangeListener
to be notified of coordinate
changesaddPostionChangeListener
in interface Positionable
listener
- The PositionChangeListener
to addPositionable.addPostionChangeListener(PositionChangeListener)
public <T extends Positionable> void removePositionChangeListener(PositionChangeListener<T> listener)
Positionable
PositionChangeListener
to stop it being notified of
coordinate changesremovePositionChangeListener
in interface Positionable
listener
- The PositionChangeListener
to removePositionable.removePositionChangeListener(PositionChangeListener)
public <T extends Sizeable> void addSizeChangeListener(SizeChangeListener<T> listener)
Sizeable
SizeChangeListener
to be notified of size changesaddSizeChangeListener
in interface Sizeable
listener
- The SizeChangeListener
to addpublic <T extends Sizeable> void removeSizeChangeListener(SizeChangeListener<T> listener)
Sizeable
SizeChangeListener
to stop it being notified of size
changesremoveSizeChangeListener
in interface Sizeable
listener
- The SizeChangeListener
to removepublic void setRotation(float degrees)
Shape
Shape
with its first point as the
originsetRotation
in interface Parallelogram
setRotation
in class Rectangle
degrees
- The rotation in degreespublic void rotate(float degrees)
Shape
Shape
by a specified amount of degrees with its
first point as the originrotate
in interface Parallelogram
rotate
in class Rectangle
degrees
- The rotation in degreespublic void rotateAround(float centerX, float centerY, float degrees)
Shape
Shape
by a specified amount of degrees around a
specified pointrotateAround
in interface Parallelogram
rotateAround
in class Rectangle
centerX
- The origin/center x coordinatecenterY
- The origin/center y coordinatedegrees
- The rotation in degreespublic void setRotationAround(Point center, float degrees)
Parallelogram
setRotationAround
in interface Parallelogram
setRotationAround
in class Rectangle
center
- The center point to rotate arounddegrees
- The rotation angle in degreespublic void setRotationAround(float centerX, float centerY, float degrees)
Shape
Shape
with a specified point as the
originsetRotationAround
in class Rectangle
centerX
- The origin/center x coordinatecenterY
- The origin/center y coordinatedegrees
- The rotation in degreespublic float getDistanceTo(Positionable positionable)
Positionable
Positionable
's xy coordinatesgetDistanceTo
in interface Positionable
positionable
- The Positionable
to retrieve the distance frompublic void forceTo(float x, float y)
CollisionShape
forceTo
in interface CollisionShape
x
- The x coordinate to sety
- The y coordinate to setpublic void forceTo(float x, float y, float width, float height)
x
- The x coordinate to sety
- The y coordinate to setwidth
- The width to setheight
- The height to setpublic void forceTo(Rectangle rectangle)
public void forceToWidth(float width)
width
- The width to setpublic void forceToHeight(float height)
height
- The height to setpublic void moveTowards(float x, float y, float speed)
Positionable
Positionable
towards a coordinatemoveTowards
in interface Positionable
x
- The target x coordinatey
- The target y coordinatespeed
- The amount to move bypublic void moveTowards(Positionable positionable, float speed)
Positionable
Positionable
towards another Positionable
moveTowards
in interface Positionable
positionable
- The target Positionable
speed
- The amount to move bypublic void add(float x, float y)
Shape
Shape
public void subtract(float x, float y)
Shape
Shape
public Rectangle set(float x, float y, float width, float height)
public void set(float x, float y)
Shape
public void setX(float x)
Shape
setX
in interface Positionable
setX
in class Rectangle
x
- The x coordinatepublic void setY(float y)
Shape
setY
in interface Positionable
setY
in class Rectangle
y
- The y coordinatepublic void setRadius(float radius)
Shape
public void scale(float scale)
Shape
public int getRenderX()
Positionable
getRenderX
in interface Positionable
public int getRenderY()
Positionable
getRenderY
in interface Positionable
public int getRenderWidth()
public int getRenderHeight()
public float getRenderRotation()
public int getId()
Positionable
getId
in interface Positionable
getId
in interface Sizeable
public Shape getShape()
CollisionShape
Shape
instancegetShape
in interface CollisionShape