Ejemplo n.º 1
0
  public void changeLevel(String lvlFile) {

    GraphicsManager.MANAGER.fadeToBlack();

    GameEntity temp = MANAGER.playerFocusEntity;
    MANAGER.gameEntities.clear();
    MANAGER.gameEntities.add(temp);

    GameMap.MAP.unload();
    loadMap("res/maps/" + lvlFile);
    Camera.CAMERA.findPlayer();
  }
Ejemplo n.º 2
0
  /**
   * Loads from an external file a new GameMap object for use within the game. A GameMap is the
   * primary object which house each MapCanvas object (that is, each elevation level in the map) and
   * in turn, each MapTile object (that is, each unique texture block).
   *
   * @param file
   * @return The newly created GameMap
   */
  public void loadMap(String file) {

    XMLParser mapFile = new XMLParser(file);

    for (Node mapEl : mapFile.root.children) {
      for (Node el : mapEl.children) {
        if (el.name.equals("tileDimensions")) GameMap.MAP.setTileDimension(el.readInt());
        else if (el.name.equals("lightLevel")) GameMap.MAP.setLightLevel(el.readFloat());
        else if (el.name.equals("tile")) {
          MapTile mt = new MapTile();
          for (Node tileChild : el.children) {
            if (tileChild.name.equals("id")) mt.id = tileChild.readInt();
            else if (tileChild.name.equals("file")) mt.loadTexture(tileChild.readString());
            else if (tileChild.name.equals("collidable")) mt.collidable = tileChild.readBoolean();
          }
          mt.width = mt.height = GameMap.MAP.tileDimensions;
          GameMap.MAP.tiles.put(mt.id, mt);
        } else if (el.name.equals("canvas")) GameMap.MAP.parseCanvas(el.data);
        else if (el.name.equals("entity")) {

          GameEntity entity = null;

          for (Node entityEl : el.children) {
            if (entityEl.name.equals("file")) {
              entity = loadEntity(entityEl.readString());
            } else if (entityEl.name.equals("position"))
              entity.setPosition(entityEl.readFloatArray());
          }
          addEntity(entity);
        } else if (el.name.equals("player")) {
          for (Node playerNode : el.children) {
            if (playerNode.name.equals("position"))
              MANAGER.playerFocusEntity.setPosition(playerNode.readFloatArray());
          }
        }
      }
    }
  }