GameWorld.Game.GameMap.java Source code

Java tutorial

Introduction

Here is the source code for GameWorld.Game.GameMap.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package GameWorld.Game;

import GameWorld.Game.Objects.Antelope;
import GameWorld.Game.Objects.ClearObject;
import GameWorld.Game.Objects.Coin;
import GameWorld.Game.Objects.GameActor;
import GameWorld.Game.Objects.Giraffe;
import GameWorld.Game.Objects.Hippo;
import GameWorld.Game.Objects.Pinguin;
import GameWorld.Game.Objects.Snake;
import GameWorld.Game.Objects.StopObj;
import GameWorld.Game.Objects.Tree;
import Helper.AssetLoader;
import Helper.Constants;
import Helper.WorldUtils;
import LocationGenerator.Barrier;

import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.physics.box2d.World;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.utils.viewport.FitViewport;

import java.util.List;

/**
 * @author qw
 */
public class GameMap {

    private Stage mapStage;
    private GameActor player;
    private GameWorld gameWorld;

    public GameMap(GameWorld gameWorld) {
        mapStage = new Stage(new FitViewport(Constants.APP_WIDTH * 4, Constants.APP_HEIGHT * 4));
        player = new ClearObject(Constants.RUNNER_X, Constants.RUNNER_Y, Constants.RUNNER_WIDTH,
                Constants.RUNNER_HEIGHT, AssetLoader.btn);
        mapStage.addActor(player);
    }

    public void focusCameraX(Pinguin p) {
        mapStage.getCamera().position.x = p.getX() + Constants.GROUND_WIDTH / 5;
        mapStage.getCamera().update();
        player.setPosition(p.getX() + Constants.RUNNER_WIDTH / 2,
                p.getY() - Constants.GROUND_Y - Constants.GROUND_HEIGHT / 2);

        player.setVisible(p.isVisible());
    }

    public Stage getStage() {
        return mapStage;
    }

    public void addUnits(List<Barrier> barr, float y, World world) {
        for (Barrier b : barr) {
            switch (b.GetType()) {
            case STOP:
                mapStage.addActor(new StopObj(world, b.GetX(), -Constants.GROUND_HEIGHT / 2, 60, 120,
                        AssetLoader.elephantTexture));
                break;
            case SNAKE:
                mapStage.addActor(
                        new Snake(AssetLoader.btn, b.GetX(), 20f - Constants.GROUND_HEIGHT / 2, 100f, 20f, world));
                break;
            case ANTELOPHE:
                mapStage.addActor(new Antelope(AssetLoader.btn, b.GetX(), -Constants.GROUND_HEIGHT / 2, 100f, 30f,
                        world, gameWorld));
                break;
            case TREE:
                mapStage.addActor(new Tree(world, b.GetX(), 0, 10, 70, 70, 10, AssetLoader.btn));
                break;
            case GIRAFFE:
                mapStage.addActor(new Giraffe(world, b.GetX(), 40, 100f, 40f, 10f, 60f, 40f, 20f, AssetLoader.btn));
                break;
            case COIN:
                mapStage.addActor(new Coin(AssetLoader.ctr, b.GetX(),
                        b.GetY() - Constants.GROUND_HEIGHT / 2 - Constants.GROUND_Y + 40f, 40f, 40f, world));
                break;
            default:
                mapStage.addActor(new StopObj(world, b.GetX(), 0, 60, 120, AssetLoader.elephantTexture));
                break;
            }
        }
    }

    public void draw() {
        mapStage.draw();
    }
}