Package com.badlogic.gdx.math

Examples of com.badlogic.gdx.math.Rectangle


    maxy = maxy < vertices[Y2] ? vertices[Y2] : maxy;
    maxy = maxy < vertices[Y3] ? vertices[Y3] : maxy;
    maxy = maxy < vertices[Y4] ? vertices[Y4] : maxy;

    if (bounds == null) bounds = new Rectangle();
    bounds.x = minx;
    bounds.y = miny;
    bounds.width = maxx - minx;
    bounds.height = maxy - miny;
    return bounds;
View Full Code Here


   * transform matrix and the stage's camera must not have rotational components. Calling this method must be followed by a call
   * to {@link #clipEnd()} if true is returned.
   * @return false if the clipping area is zero and no drawing should occur.
   * @see ScissorStack */
  public boolean clipBegin (float x, float y, float width, float height) {
    Rectangle tableBounds = Rectangle.tmp;
    tableBounds.x = x;
    tableBounds.y = y;
    tableBounds.width = width;
    tableBounds.height = height;
    Stage stage = this.stage;
    Rectangle scissorBounds = Pools.obtain(Rectangle.class);
    stage.calculateScissors(tableBounds, scissorBounds);
    if (ScissorStack.pushScissors(scissorBounds)) return true;
    Pools.free(scissorBounds);
    return false;
  }
View Full Code Here

   * {@link #setCullingArea(Rectangle) culling area}, if set. */
  protected void drawChildren (SpriteBatch batch, float parentAlpha) {
    parentAlpha *= this.color.a;
    SnapshotArray<Actor> children = this.children;
    Actor[] actors = children.begin();
    Rectangle cullingArea = this.cullingArea;
    if (cullingArea != null) {
      // Draw children only if inside culling area.
      float cullLeft = cullingArea.x;
      float cullRight = cullLeft + cullingArea.width;
      float cullBottom = cullingArea.y;
View Full Code Here

    else
      calculateVertBoundsAndPositions();

    Actor firstWidget = this.firstWidget;
    if (firstWidget != null) {
      Rectangle firstWidgetBounds = this.firstWidgetBounds;
      firstWidget.setBounds(firstWidgetBounds.x, firstWidgetBounds.y, firstWidgetBounds.width, firstWidgetBounds.height);
      if (firstWidget instanceof Layout) ((Layout)firstWidget).validate();
    }
    Actor secondWidget = this.secondWidget;
    if (secondWidget != null) {
      Rectangle secondWidgetBounds = this.secondWidgetBounds;
      secondWidget.setBounds(secondWidgetBounds.x, secondWidgetBounds.y, secondWidgetBounds.width, secondWidgetBounds.height);
      if (secondWidget instanceof Layout) ((Layout)secondWidget).validate();
    }
  }
View Full Code Here

    BoundingBox bounds = this.bounds;

    bounds.inf();
    for (int i = 0, n = active.length; i < n; i++)
      if (active[i]) {
        Rectangle r = particles[i].getBoundingRectangle();
        bounds.ext(r.x, r.y, 0);
        bounds.ext(r.x + r.width, r.y + r.height, 0);
      }

    return bounds;
View Full Code Here

    // Escala la velocidad para calcular cuanto se avanza en este frame (para mayor precisión)
    velocity.scl(dt);
   
    // Para el chequeo de colisiones
    int startX, endX, startY, endY;
    Rectangle rect = rectPool.obtain();
    rect.set(position.x, position.y, 18, 28);
   
    // Comprueba las colisiones con tiles en el eje Y (he quitado + velocity.y en startY, endY)
    // El enemigo está saltando
    if (velocity.y > 0)
      startY = endY = (int) (position.y + HEIGHT + velocity.y);
    // El enemigo cae o está parado (no se tiene en cuenta su altura)
    else
      startY = endY = (int) (position.y + velocity.y);
   
    startX = (int) position.x;
    endX = (int) (position.x + WIDTH);
    // Obtiene la lista de tiles que ocupan la posición del enemigo
    getTilesPosition(startX, startY, endX, endY, tiles);
    rect.y += velocity.y;
    for (Rectangle tile : tiles) {
      if (tile.overlaps(rect)) {
        if (velocity.y > 0) {
          position.y = tile.y - HEIGHT;
        }
        else {
          position.y = tile.y + tile.height;
        }
        velocity.y = 0;
        break;
      }
    }
   
    // Comprueba las colisiones con tiles en el eje X (he quitado + velocity.x en startX, endX)
    // El enemigo se desplaza hacia la derecha
    if (velocity.x > 0)
      startX = endX = (int) (position.x + WIDTH + velocity.x);
    // El enemigo se desplaza hacia la izquierda (no se tiene en cuenta la anchura del enemigo)
    else
      startX = endX = (int) (position.x + velocity.x);
   
    startY = (int) position.y;
    endY = (int) (position.y + HEIGHT);
    // Obtiene la lista de tiles que ocupan la posición del enemigo
    getTilesPosition(startX, startY, endX, endY, tiles);
    rect.x += velocity.x;
    for (Rectangle tile : tiles) {
      if (rect.overlaps(tile)) {
        faceLeft = !faceLeft;
        velocity.x = 0;
        break;
      }
    }
View Full Code Here

        int yCell = (int) (y / TiledMapManager.collisionLayer.getTileHeight());
        Cell cell = TiledMapManager.collisionLayer.getCell(xCell, yCell);
       
        // Si es un bloque se a�ade para comprobar colisiones
        if ((cell != null) && (cell.getTile().getProperties().containsKey(TiledMapManager.BLOCKED))) {
          Rectangle rect = rectPool.obtain();
         
          rect.set((int) (Math.ceil(x / 16f) * 16), (int) (Math.ceil(y / 16f) * 16), 0, 0);
          tiles.add(rect);
        }
      }
    }
  }
View Full Code Here

    // Escala la velocidad para calcular cuanto se avanza en este frame (para mayor precisión)
    velocity.scl(dt);
   
    // Para el chequeo de colisiones
    int startX, endX, startY, endY;
    Rectangle rect = rectPool.obtain();
    rect.set(position.x, position.y, 18, 18);
   
    // Comprueba las colisiones con tiles en el eje Y (he quitado + velocity.y en startY, endY)
    // El item está saltando
    if (velocity.y > 0)
      startY = endY = (int) (position.y + HEIGHT + velocity.y);
    // El item cae o est� parado (no se tiene en cuenta su altura)
    else
      startY = endY = (int) (position.y + velocity.y);
   
    startX = (int) position.x;
    endX = (int) (position.x + WIDTH);
    // Obtiene la lista de tiles que ocupan la posición del item
    getTilesPosition(startX, startY, endX, endY, tiles);
    rect.y += velocity.y;
    for (Rectangle tile : tiles) {
      if (tile.overlaps(rect)) {
        if (velocity.y > 0) {
          position.y = tile.y - HEIGHT;
        }
        else {
          position.y = tile.y + tile.height;
        }
        velocity.y = 0;
        break;
      }
    }
   
    // Comprueba las colisiones con tiles en el eje X (he quitado + velocity.x en startX, endX)
    // El item se desplaza hacia la derecha
    if (velocity.x > 0)
      startX = endX = (int) (position.x + WIDTH + velocity.x);
    // El item se desplaza hacia la izquierda (no se tiene en cuenta la anchura del personaje)
    else
      startX = endX = (int) (position.x + velocity.x);
   
    startY = (int) position.y;
    endY = (int) (position.y + HEIGHT);
    // Obtiene la lista de tiles que ocupan la posición del item
    getTilesPosition(startX, startY, endX, endY, tiles);
    rect.x += velocity.x;
    for (Rectangle tile : tiles) {
      if (rect.overlaps(tile)) {
        faceLeft = !faceLeft;
        velocity.x = 0;
        break;
      }
    }
View Full Code Here

        int yCell = (int) (y / TiledMapManager.collisionLayer.getTileHeight());
        Cell cell = TiledMapManager.collisionLayer.getCell(xCell, yCell);
       
        // Si es un bloque se añade para comprobar colisiones
        if ((cell != null) && (cell.getTile().getProperties().containsKey(TiledMapManager.BLOCKED))) {
          Rectangle rect = rectPool.obtain();
         
          rect.set((int) (Math.ceil(x / 16f) * 16), (int) (Math.ceil(y / 16f) * 16), 0, 0);
          tiles.add(rect);
        }
      }
    }
  }
View Full Code Here

   
    // Escala la velocidad para calcular cuanto se avanza en este frame (para mayor precisión)
    velocity.scl(dt);
   
    // Comprueba las colisiones con tiles en el eje X (he quitado + velocity.x en startX, endX)
    Rectangle playerRect = rectPool.obtain();
    playerRect.set(position.x, position.y, WIDTH, HEIGHT);
    int startX, endX, startY, endY;
    // El jugador se desplaza hacia la derecha
    if (velocity.x > 0)
      startX = endX = (int) (position.x + WIDTH + velocity.x);
    // El jugador se desplaza hacia la izquierda (no se tiene en cuenta la anchura del personaje)
    else
      startX = endX = (int) (position.x + velocity.x);
   
    startY = (int) position.y;
    endY = (int) (position.y + HEIGHT);
    // Obtiene la lista de tiles que ocupan la posición del personaje
    getTilesPosition(startX, startY, endX, endY, tiles);
    playerRect.x += velocity.x;
    for (Rectangle tile : tiles) {
      if (playerRect.overlaps(tile)) {
        velocity.x = 0;
        break;
      }
    }
    playerRect.x = position.x;
View Full Code Here

TOP

Related Classes of com.badlogic.gdx.math.Rectangle

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.