I'm Making A 2D Game Engine But I Think Something Is Wrong. FPS is 0.
Code:
package com.chara.engine;
public class GameContainer implements Runnable
{
private Thread thread;
private boolean running = false;
private final double UPDATE_CAP = 1.0/60.0;
public GameContainer()
{
}
public void start()
{
thread = new Thread(this);
thread.run();
}
public void stop()
{
}
public void run()
{
running = true;
boolean render = false;
float firstTime = 0;
float lastTime = System.nanoTime() / 1000000000f;
double passedTime = 0;
double unprocessedTime = 0;
double frameTime = 0;
int frames = 0;
int fps = 0;
while(running)
{
firstTime = System.nanoTime() / 1000000000;
passedTime = firstTime - lastTime;
lastTime = firstTime;
unprocessedTime += passedTime;
frameTime += passedTime;
while(unprocessedTime >= UPDATE_CAP)
{
unprocessedTime -= UPDATE_CAP;
render = true;
if(frameTime >= 1.0)
{
frameTime = 0;
frames = 0;
fps = frames;
System.out.println("FPS:"+ fps);
}
//TODO: Update game
}
if(render)
{
frames++;
//TODO: Render game
}else
{
try
{
Thread.sleep(1);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
dispose();
}
private void dispose()
{
}
public static void main(String[] args)
{
GameContainer gc = new GameContainer();
gc.start();
}
}