我想编写一个简单的 Snake。因此,我编写了一个自定义JPanel
,它可以容纳一个Scene
. AScene
只是画了一些东西,你可以用public void run()
方法线程化它,所以它实现了Runnable
.
现在,当我初始化场景时,我创建了一个Thread
实例。
if (this.getThread() == null) {
Thread sceneThread = new Thread(this);
this.setThread(sceneThread);
this.getThread().run();
} else {
System.err.println("Scene is already running");
}
场景终于开始在一个单独的线程中执行:
// Run thread
public void run () {
try {
while (true) {
this.update();
this.getGamePanel().sceneShouldRepaint();
Thread.sleep(this.getFps());
}
}
catch (Exception e) {
System.err.println(e);
}
}
不知何故,这阻塞了 Windows 线程。它不再出现。
谁能告诉我为什么?