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; }
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; }