ColorRunner/core/src/de/samdev/colorrunner/game/world/CRGameWorld.java

98 lines
2.7 KiB
Java

package de.samdev.colorrunner.game.world;
import java.util.ArrayList;
import java.util.List;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import de.samdev.colorrunner.CRGame;
import de.samdev.colorrunner.game.renderer.AbstractGameRenderer;
import de.samdev.colorrunner.game.world.entities.CRGameEntity;
import de.samdev.colorrunner.game.world.entities.gameentities.PlayerEntity;
import de.samdev.colorrunner.game.world.entities.gameentities.floor.DownStateFloorTileEntity;
import de.samdev.colorrunner.game.world.entities.gameentities.floor.FloorTileEntity;
import de.samdev.colorrunner.game.world.entities.gameentities.floor.LeftStateFloorTileEntity;
import de.samdev.colorrunner.game.world.entities.gameentities.floor.NoStateFloorTileEntity;
import de.samdev.colorrunner.game.world.entities.gameentities.floor.RightStateFloorTileEntity;
import de.samdev.colorrunner.game.world.entities.gameentities.floor.UpStateFloorTileEntity;
import de.samdev.colorrunner.game.world.map.CRMapStorage;
import de.samdev.colorrunner.game.world.map.CRTiledMap;
import de.samdev.colorrunner.game.world.map.MapSection;
import de.samdev.colorrunner.game.world.map.provider.EndlessMapProvider;
import de.samdev.colorrunner.game.world.map.provider.MapProvider;
import de.samdev.colorrunner.input.GameInputListener;
import de.samdev.colorrunner.screens.gameScreen.GameScreen;
import de.samdev.colorrunner.screens.menu.MainMenu;
public class CRGameWorld implements GameInputListener {
public PlayerEntity player;
public List<CRGameEntity> entities;
public FPSCounter fps = new FPSCounter();
public Rectangle camViewBoundaries = new Rectangle();
public MapProvider mapprovider;
public CRGameWorld() {
reinitialize();
}
private void reinitialize() {
entities = new ArrayList<CRGameEntity>();
mapprovider = new EndlessMapProvider();
addEntity(player = new PlayerEntity(this, 40, 290));
mapprovider.init(this);
}
public void update(float delta) {
fps.Inc();
for (int i = entities.size()-1; i >= 0; i--) {
CRGameEntity ent = entities.get(i);
if (ent.active)
ent.update(delta);
else
entities.remove(i);
}
if(player.getPosition().y < - 10)
{
((Game) Gdx.app.getApplicationListener()).setScreen(new GameScreen());
}
mapprovider.update(this, player.bounds);
}
public CRGameEntity addEntity(CRGameEntity ent) {
entities.add(ent);
return ent;
}
@Override
public void doJump() {
player.jump();
}
@Override
public void switchColor(SwipeDirection sd) {
player.switchPhase(sd);
}
@Override
public void doFly() {
player.fly();
}
@Override
public void reset() {
reinitialize();
}
}