com.golden.gamedev.object
Class CollisionGroup
java.lang.Object
|
+--com.golden.gamedev.object.CollisionGroupStandard
|
+--com.golden.gamedev.object.CollisionGroup
- All Implemented Interfaces:
- CollisionGroupManager
- Direct Known Subclasses:
- CollisionGroupPrecise
- public abstract class CollisionGroup
- extends CollisionGroupStandard
Subclass of CollisionGroupStandard
,
introduce some collision events, such as collision side, and
sprite position after collision.
Suitable for collision that need to know which side the collision occured,
but doesn't need precise sprite position after collision.
For example collision between projectile and enemy in platform game,
the collision side is used to determine to which side the enemy should fall.
To get more precise sprite position after collision use
CollisionGroupPrecise
instead.
- See Also:
PlayField.addCollisionGroup(SpriteGroup, SpriteGroup, CollisionGroupManager)
Methods inherited from class com.golden.gamedev.object.CollisionGroupStandard |
checkCollision, collided, getCollisionRect1, getCollisionRect2, getGroup1, getGroup2, isActive, isCollide, setActive, setCollisionGroup, setCollisionRect1, setCollisionRect2 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LEFT_RIGHT_COLLISION
public static final int LEFT_RIGHT_COLLISION
- See Also:
- Constant Field Values
RIGHT_LEFT_COLLISION
public static final int RIGHT_LEFT_COLLISION
- See Also:
- Constant Field Values
TOP_BOTTOM_COLLISION
public static final int TOP_BOTTOM_COLLISION
- See Also:
- Constant Field Values
BOTTOM_TOP_COLLISION
public static final int BOTTOM_TOP_COLLISION
- See Also:
- Constant Field Values
sprite1
protected Sprite sprite1
sprite2
protected Sprite sprite2
collisionSide
protected int collisionSide
collisionX1
protected int collisionX1
collisionY1
protected int collisionY1
collisionX2
protected int collisionX2
collisionY2
protected int collisionY2
CollisionGroup
public CollisionGroup(SpriteGroup group1,
SpriteGroup group2)
CollisionGroup
public CollisionGroup()
revertPosition1
public void revertPosition1()
revertPosition2
public void revertPosition2()
isCollide
public boolean isCollide(CollisionRect r1,
CollisionRect r2,
Sprite s1,
Sprite s2)
- Returns true if Sprite
s1
and Sprite s2
bounding box (r1
, r2
) collided.
This method is responsible to take care all collision event,
such as which sprite
is collided
(in this case s1
and s2
),
the collision side
,
position where collision actually occured
(collisionX1
, collisionY1
for sprite one, and collisionX2
,
collisionY2
for for sprite two).
The information is used for revertPosition1()
and
revertPosition2()
method. If the given information is false,
those two method result will be unpredictable.
- Overrides:
isCollide
in class CollisionGroupStandard
- Returns:
- true, if sprite
s1
and s2
collided - See Also:
collisionSide
,
sprite1
,
collisionX1
,
collisionY1
,
revertPosition1()
getCollisionSide
public int getCollisionSide()
getCollisionSideString
public String getCollisionSideString()
getSprite1
public Sprite getSprite1()
getSprite2
public Sprite getSprite2()