我相信一旦我启动这个程序,FPS就会打印在新窗口的某个地方。我看到了窗口,但FPS没有显示在窗口中。有什么问题?
public class Game extends Canvas implements Runnable {
private static final long serialVersionUID = 1L;
public static final int WIDTH = 640, HEIGHT = WIDTH / 12 * 9;
private Thread thread;
private boolean running = false;
public Game() {
new Window(WIDTH, HEIGHT, "MY GAME", this);
}
public synchronized void start() {
thread = new Thread(this);
thread.start();
running = true;
}
public synchronized void stop() {
try {
thread.join();
running = false;
} catch (Exception e) {
e.printStackTrace();
}
}
public void run() {
long lastTime = System.nanoTime();
double amountOfTicks = 60.0;
double ns = 1000000000 / amountOfTicks;
double delta = 0;
long timer = System.currentTimeMillis();
int frames = 0;
while (running) {
long now = System.nanoTime();
delta += (now - lastTime) / ns;
lastTime = now;
while (delta <= 1) {
delta--;
}
if (running)
frames++;
if (System.currentTimeMillis() - timer > 1000) {
timer += 1000;
System.out.println("fps: " + frames);
frames = 0;
}
}
stop();
}
public static void main(String args[]) {
new Game();
}
}
答案 0 :(得分:1)
本教程可能意味着fps将打印到也在作者开发环境中打开的某个控制台窗口。 System.out.println
仍会打印到标准输出,除非您使用setOut
进行更改并编写一些其他代码,然后在Window
中的某个位置放置或绘制GUI组件中的文本。