bool ObstacleDobleAir::collision(BaseVehicle &vehicle)
{
    if(vehicle.getState() != kStateJump)
        return false;
    
    float y = vehicle.getPositionY() - vehicle.getPlayerY() - vehicle.getContentSize().height * 0.5f;
    if(y < MAX_PLAYER_JUMP * 0.45f)
        return false;
    
    CCRect rectAir = vehicle.getAirCollision();
    
    int i;
    CCRect area;
    
    for(i = 0; i < vCollision.size(); i++)
    {
        area = currentCollisionArea(vCollision[i]);
        if(area.intersectsRect(rectAir))
        {
            return true;
        }
    }
    
    return false;
}
Exemple #2
0
bool BaseObstacle::collision(BaseVehicle& vehicle)
{
    
    Rect rectAir = vehicle.getAirCollision();
    Rect rectFloor = vehicle.getGroundCollision();
    
    unsigned int i;
    Rect area;
    
    for(i = 0; i < vCollision.size(); i++)
    {
        area = currentCollisionArea(vCollision[i]);
        if(area.intersectsRect(rectAir) && area.intersectsRect(rectFloor))
        {
            return true;
        }
    }
    
    
    return false;
}