/**
   * Método que lleva el control sobre el recorrido para el caso especial del If
   *
   * @param tmp Vertice Acual <code>Vertex<StructV></code>
   */
  private boolean ifCase(Vertex<StructV> tmp) {

    if (tmp.getValue().getSprite() instanceof SpriteIf) {
      if (ifList.size() != 0) {
        Sprite currentIf = ifList.get(ifList.size() - 1).getValue().getSprite();

        if (!currentIf.equals(tmp.getValue().getSprite())) {
          ifList.add(tmp);
        }
      } else {
        ifList.add(tmp);
      }
    }

    return false;
  }
  /**
   * M&eacute;todo que lleva el control sobre el recorrido para el caso especial del While
   *
   * @param tmp Vertice Acual <code>Vertex<StructV></code>
   */
  private boolean whileCase(Vertex<StructV> tmp) {

    if (tmp.getValue().getSprite() instanceof SpriteWhile) {
      if (whileList.size() != 0) {
        Sprite currentWhile = whileList.get(whileList.size() - 1);

        if (!currentWhile.equals(tmp.getValue().getSprite())) {
          whileList.add(tmp.getValue().getSprite());
        } else {
          whileList.remove(whileList.size() - 1);
          return true;
        }
      } else {
        whileList.add(tmp.getValue().getSprite());
      }
    }

    return false;
  }
  /**
   * M&eacute;todo que lleva el control sobre el recorrido para el caso especial del For
   *
   * @param tmp Vertice Acual <code>Vertex<StructV></code>
   */
  private boolean forCase(Vertex<StructV> tmp) {

    if (tmp.getValue().getSprite() instanceof SpriteFor) {
      if (forList.size() != 0) {
        Sprite currentFor = forList.get(forList.size() - 1);

        if (!currentFor.equals(tmp.getValue().getSprite())) {
          forList.add(tmp.getValue().getSprite());
        } else {
          forList.remove(forList.size() - 1);
          return true;
        }
      } else {
        forList.add(tmp.getValue().getSprite());
      }
    }

    return false;
  }
예제 #4
0
 @Override
 public void drawSprite(final Graphics g) {
   if (isActive) {
     super.prepareDrawSprite(g);
     if (image == null) { // the sprite has no image
       return;
     }
     final MapEwin map = game.getMap();
     if (!ewin.getOldLeft()) {
       // System.out.println("x: " + (locx + map.getWorldOffsetX())
       // + ", y: " + (map.getWorldOffsetY() + locy));
       // System.out.println("xoff: " + (map.getWorldOffsetX())
       // + ", yoff: " + (map.getWorldOffsetY()));
       // System.out.println("x-off: " + (locx) + ", y-off: " +
       // (locy));
       g.drawImage(
           image,
           (int) (locx + map.getWorldOffsetX()),
           (int) (map.getWorldOffsetY() + locy),
           width,
           height,
           null);
     } else {
       g.drawImage(
           image,
           (int) (locx + width + map.getWorldOffsetX()),
           (int) (locy + map.getWorldOffsetY()),
           (int) (locx + map.getWorldOffsetX()),
           (int) (locy + height + map.getWorldOffsetY()),
           0,
           0,
           image.getWidth(),
           image.getHeight(),
           null);
     }
   }
 }