/** * updates all objects. * * @param elapsed time elapsed since latest update */ public final void update(final float elapsed) { for (GameObject object : gameObjects) { if (!object.remove()) { object.update(elapsed); } } }
/** * Check how much overlap there is on the right side of the rectangle. * * @param other rectangle of other object. * @return amount of overlap. */ public final float overlapRight(GameObject other) { float overlap = 0; if (collidesWith(other) && getRight() <= other.getRight()) { overlap = getRight() - other.getLeft(); } return overlap; }
/** * Check how much overlap there is on the bottom side of the rectangle. * * @param other rectangle of other object. * @return amount of overlap. */ public final float overlapBottom(GameObject other) { float overlap = 0; if (collidesWith(other) && getBottom() >= other.getBottom()) { overlap = other.getTop() - getBottom(); } return overlap; }
/** * Check if there is overlap of rectangles. * * @param other rectangle of other object. * @return true if overlap, else false. */ public final boolean collidesWith(GameObject other) { return getBody().overlaps(other.getBody()); }