com.golden.gamedev.object
Class CollisionGroupPrecise

java.lang.Object
  |
  +--com.golden.gamedev.object.CollisionGroupStandard
        |
        +--com.golden.gamedev.object.CollisionGroup
              |
              +--com.golden.gamedev.object.CollisionGroupPrecise
All Implemented Interfaces:
CollisionGroupManager
Direct Known Subclasses:
PlatformCollision

public abstract class CollisionGroupPrecise
extends CollisionGroup

Subclass of CollisionGroup that calculate precise sprite position after collision.

Suitable for precise collision detection that the collided object is stopped rather than disappeared after collision.
For example collision between ball and blocks, the ball need to stop or bounce precisely when collided with block.

See Also:
PlayField.addCollisionGroup(SpriteGroup, SpriteGroup, CollisionGroupManager)

Field Summary
 
Fields inherited from class com.golden.gamedev.object.CollisionGroup
BOTTOM_TOP_COLLISION, collisionSide, collisionX1, collisionX2, collisionY1, collisionY2, LEFT_RIGHT_COLLISION, RIGHT_LEFT_COLLISION, sprite1, sprite2, TOP_BOTTOM_COLLISION
 
Constructor Summary
CollisionGroupPrecise()
           
CollisionGroupPrecise(SpriteGroup group1, SpriteGroup group2)
           
 
Method Summary
 boolean isCollide(CollisionRect r1, CollisionRect r2, Sprite s1, Sprite s2)
          Returns true if Sprite s1 and Sprite s2 bounding box (r1, r2) collided.
 
Methods inherited from class com.golden.gamedev.object.CollisionGroup
getCollisionSide, getCollisionSideString, getSprite1, getSprite2, revertPosition1, 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
 

Constructor Detail

CollisionGroupPrecise

public CollisionGroupPrecise(SpriteGroup group1,
                             SpriteGroup group2)

CollisionGroupPrecise

public CollisionGroupPrecise()
Method Detail

isCollide

public boolean isCollide(CollisionRect r1,
                         CollisionRect r2,
                         Sprite s1,
                         Sprite s2)
Description copied from class: CollisionGroup
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 CollisionGroup.revertPosition1() and CollisionGroup.revertPosition2() method. If the given information is false, those two method result will be unpredictable.

Overrides:
isCollide in class CollisionGroup
Returns:
true, if sprite s1 and s2 collided
See Also:
CollisionGroup.collisionSide, CollisionGroup.sprite1, CollisionGroup.collisionX1, CollisionGroup.collisionY1, CollisionGroup.revertPosition1()