GameLoop and some skeleton classes

This commit is contained in:
Gulum
2017-10-16 15:15:32 +02:00
parent 5c16b98c1e
commit 59fcf074f6
14 changed files with 172 additions and 12 deletions

View File

@@ -1,49 +1,83 @@
package com.darkrp2d;
import com.badlogic.ashley.core.Engine;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.GlyphLayout;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.TimeUtils;
import com.darkrp2d.input.CommandStream;
import com.darkrp2d.input.InputHandler;
import com.darkrp2d.input.commands.Command;
import com.darkrp2d.input.commands.MenuCommand;
import com.darkrp2d.scenes.menu.MenuScreen;
public class DarkRP2D extends Game {
public BitmapFont font;
public SpriteBatch batch;
private Engine engine;
@Override
public void create () {
font = new BitmapFont();
batch = new SpriteBatch();
engine = new Engine();
//Sets inputs
Gdx.input.setInputProcessor(new InputHandler(new MenuCommand(this, new MenuScreen(this))));
Gdx.input.setInputProcessor(new InputHandler(this));
}
private double lag = 0.;
private static final double MS_PER_UPDATE = 16.66;
private int ups = 0;
private double timer = 0.;
@Override
// GameLoop
public void render () {
//Update stuff
lag += Gdx.graphics.getDeltaTime() * 1e3; //Seconds to milliseconds
timer += Gdx.graphics.getDeltaTime();
//Process Input
Command currentCommand = CommandStream.pollCommand();
if(currentCommand != null) {
currentCommand.execute();
}
//Render stuff
//Update Stuff
while(lag >= MS_PER_UPDATE) {
update();
ups++;
lag -= MS_PER_UPDATE;
}
if(timer >= 1) {
System.out.println(ups);
ups = 0;
timer = 0.;
}
trueRender();
}
public void update() {
}
public void trueRender() {
Gdx.gl.glClearColor(0.f, 0.f, 0.f, 1.f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//Render current Screen
super.render();
batch.begin();
GlyphLayout layout = new GlyphLayout(font, "Hello World");
font.draw(batch, layout, Gdx.graphics.getWidth()/2-layout.width/2, Gdx.graphics.getHeight()/2-layout.height/2);
batch.end();
}
}
@Override
public void dispose () {