added fps counter
This commit is contained in:
62
core/src/netwerkprog/game/FrameRate.java
Normal file
62
core/src/netwerkprog/game/FrameRate.java
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
package netwerkprog.game;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
import com.badlogic.gdx.utils.Disposable;
|
||||||
|
import com.badlogic.gdx.utils.TimeUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A nicer class for showing framerate that doesn't spam the console
|
||||||
|
* like Logger.log()
|
||||||
|
*
|
||||||
|
* @author William Hartman
|
||||||
|
*/
|
||||||
|
public class FrameRate implements Disposable{
|
||||||
|
long lastTimeCounted;
|
||||||
|
private float sinceChange;
|
||||||
|
private float frameRate;
|
||||||
|
private BitmapFont font;
|
||||||
|
private SpriteBatch batch;
|
||||||
|
private OrthographicCamera cam;
|
||||||
|
|
||||||
|
|
||||||
|
public FrameRate() {
|
||||||
|
lastTimeCounted = TimeUtils.millis();
|
||||||
|
sinceChange = 0;
|
||||||
|
frameRate = Gdx.graphics.getFramesPerSecond();
|
||||||
|
font = new BitmapFont();
|
||||||
|
batch = new SpriteBatch();
|
||||||
|
cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void resize(int screenWidth, int screenHeight) {
|
||||||
|
cam = new OrthographicCamera(screenWidth, screenHeight);
|
||||||
|
cam.translate(screenWidth / 2, screenHeight / 2);
|
||||||
|
cam.update();
|
||||||
|
batch.setProjectionMatrix(cam.combined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update() {
|
||||||
|
long delta = TimeUtils.timeSinceMillis(lastTimeCounted);
|
||||||
|
lastTimeCounted = TimeUtils.millis();
|
||||||
|
|
||||||
|
sinceChange += delta;
|
||||||
|
if(sinceChange >= 1000) {
|
||||||
|
sinceChange = 0;
|
||||||
|
frameRate = Gdx.graphics.getFramesPerSecond();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void render() {
|
||||||
|
batch.begin();
|
||||||
|
font.draw(batch, (int)frameRate + " fps", 3, Gdx.graphics.getHeight() - 3);
|
||||||
|
batch.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispose() {
|
||||||
|
font.dispose();
|
||||||
|
batch.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package netwerkprog.game;
|
package netwerkprog.game;
|
||||||
|
|
||||||
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
|
||||||
|
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* custom application config class for the game
|
* custom application config class for the game
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class MainGame extends ApplicationAdapter {
|
|||||||
float yPos = 500;
|
float yPos = 500;
|
||||||
float xUpdate;
|
float xUpdate;
|
||||||
float yUpdate;
|
float yUpdate;
|
||||||
|
private FrameRate frameRate;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create() {
|
public void create() {
|
||||||
@@ -25,6 +26,7 @@ public class MainGame extends ApplicationAdapter {
|
|||||||
float ratio = (float) Gdx.graphics.getWidth() / Gdx.graphics.getHeight();
|
float ratio = (float) Gdx.graphics.getWidth() / Gdx.graphics.getHeight();
|
||||||
xUpdate = ratio;
|
xUpdate = ratio;
|
||||||
yUpdate = ratio;
|
yUpdate = ratio;
|
||||||
|
frameRate = new FrameRate();
|
||||||
|
|
||||||
// play music
|
// play music
|
||||||
Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("core/assets/music.mp3", Files.FileType.Internal));
|
Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("core/assets/music.mp3", Files.FileType.Internal));
|
||||||
@@ -41,6 +43,8 @@ public class MainGame extends ApplicationAdapter {
|
|||||||
updatePos();
|
updatePos();
|
||||||
batch.draw(img, xPos, yPos);
|
batch.draw(img, xPos, yPos);
|
||||||
batch.end();
|
batch.end();
|
||||||
|
frameRate.update();
|
||||||
|
frameRate.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePos() {
|
private void updatePos() {
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ package netwerkprog.game.desktop;
|
|||||||
|
|
||||||
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
|
||||||
import netwerkprog.game.MainGame;
|
import netwerkprog.game.MainGame;
|
||||||
import temp.Animator;
|
|
||||||
import netwerkprog.game.GameApplicationConfiguration;
|
import netwerkprog.game.GameApplicationConfiguration;
|
||||||
import temp.Networking;
|
|
||||||
|
|
||||||
public class DesktopLauncher {
|
public class DesktopLauncher {
|
||||||
public static void main (String[] arg) {
|
public static void main (String[] arg) {
|
||||||
|
|||||||
Reference in New Issue
Block a user