간단한 스네이크를 프로그래밍하고 싶습니다. 따라서 Scene
을 보유 할 수있는 사용자 정의 JPanel
을 프로그래밍했습니다. Scene
은 무언가를 그렸으며 public void run()
메서드로 스레드 할 수 있으므로 Runnable
을 구현합니다.JPanel의 무한 루프
이제 장면을 초기화 할 때 인스턴스의 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 스레드 코드를 제공 할 수 있습니까? –
스윙 스레드 모델이 이벤트 발송 스레드와 어떻게 작동하는지 읽고 이해 했습니까? http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html – Qwerky
@IshanKhanna 방금 JFrame'새 GUI()를 작성합니다. ','GUI'는'JFrame' 서브 클래스입니다 – NSAddict