繁体   English   中英

为什么FPS不在我的窗口中打印?

[英]Why doesn't the FPS print in my window?

我相信,一旦启动此程序, 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();
  }
}

该教程可能意味着fps将被打印到在控制台的窗口中,该窗口也在作者的开发环境中打开。 System.out.println仍将打印为标准输出,除非您使用setOut对其进行setOut并编写一些其他代码,然后将其放置或绘制在Window的GUI组件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM