Start() 方法未运行 - Java

我对 Java 以及制作游戏循环相当陌生,并且正在尝试创建太空入侵者。但是,当我执行代码时,start() 方法不会运行。为什么这没有发生?是否还有其他我可以更改的内容以使其运行得更好?

import java.awt.Canvas;
import javax.swing.*;

public class Main extends Canvas implements Runnable
{
  private boolean running = false;
  private Thread thread;

  public static void main(String[] args) {
    Window w = new Window(800,600,"Space Invaders",new Main());
  }

  public synchronized void start(){
    System.out.println("debug1");
    if(running)
    {
      return;
    }
    running = true;
    thread = new Thread(this);
    thread.start();
  }

  public void run()
  {
    long lastTime = System.nanoTime();
    double amountOfTicks = 60.0;
    double ns = 1000000000 / amountOfTicks;
    double delta = 0;
    long timer =System.currentTimeMillis();
    int updates = 0;
    int frames = 0;
    while(running){
      long now = System.nanoTime();
      delta += (now - lastTime) / ns;
      lastTime = now;
       while(delta >=1){
        tick();
        updates++;
        delta--;
      }
      render();
      frames++;

      if(System.currentTimeMillis()- timer > 1000){
        timer += 1000;
        System.out.println("FPS: " + frames + "TICKS: " + updates);
        frames = 0;
        updates = 0;
      }
    }
  }

  private void tick()
  {

  }

  private void render()
  {

  }
}
xiaodiwei 回答:Start() 方法未运行 - Java

向您的 Main 类添加一个显式构造函数并调用您的 start 函数。

public Main(){
   start();
}
本文链接:https://www.f2er.com/364138.html

大家都在问