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)

Field Summary
static int BOTTOM_TOP_COLLISION
           
protected  int collisionSide
           
protected  int collisionX1
           
protected  int collisionX2
           
protected  int collisionY1
           
protected  int collisionY2
           
static int LEFT_RIGHT_COLLISION
           
static int RIGHT_LEFT_COLLISION
           
protected  Sprite sprite1
           
protected  Sprite sprite2
           
static int TOP_BOTTOM_COLLISION
           
 
Constructor Summary
CollisionGroup()
           
CollisionGroup(SpriteGroup group1, SpriteGroup group2)
           
 
Method Summary
 int getCollisionSide()
           
 String getCollisionSideString()
           
 Sprite getSprite1()
           
 Sprite getSprite2()
           
 boolean isCollide(CollisionRect r1, CollisionRect r2, Sprite s1, Sprite s2)
          Returns true if Sprite s1 and Sprite s2 bounding box (r1, r2) collided.
 void revertPosition1()
           
 void revertPosition2()
           
 
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
 

Field Detail

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
Constructor Detail

CollisionGroup

public CollisionGroup(SpriteGroup group1,
                      SpriteGroup group2)

CollisionGroup

public CollisionGroup()
Method Detail

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()