2014-08-28 4 views
-1
import java.awt.Canvas; 

public class GSM extends Canvas implements Runnable { 

//The game state manager 

public final long secondNS = 1000000000; 
public final long frameNS = secondNS/60; 
public boolean running = true; 
public long now = System.nanoTime(); 
public long startTime = now; 
public long lastFrame = now; 
public long lastSecond = now; 
public int frames = 0; 

public void run() 
{ 

    System.out.println("Program started."); 
    while(running) 
    { 
     now = System.nanoTime(); 
     if(now - lastFrame >= frameNS) 
     { 
      lastFrame = now; 
      frames++; 
     } 
     if(now - lastSecond >= secondNS) 
     { 
      lastSecond = now; 
      System.out.println(frames); 
      frames = 0; 
     } 
    } 
} 

public static void main(String[] args) 
{ 
    new GSM(); 
} 
} 

Только начинайте делать игровой движок, но программа немедленно прекращается. Может кто-нибудь указать на ошибку? Я знаю, что что-то не хватает, что будет супер очевидным, и я собираюсь встретиться лицом к лицу, я ценю вашу помощь. Спасибо!Программа заканчивается перед запуском?

+2

Вам действительно нужно начать с изучения основ. Даже простой игровой движок представляет собой сложную часть программного обеспечения, и у вас еще нет опыта. Начните с более простых проектов и прокладывайте себе путь. – chrylis

+1

Вы понимаете, что даже если вы создаете «Thread» для запуска «Runnable», он не будет показывать какой-либо графический интерфейс на экране только потому, что это «холст», правильно? Кроме того, вы заняты ожиданием в цикле 'while', что плохо. –

ответ

1

GSM реализует Runnable, но вы на самом деле не создает поток для того, чтобы работать в, следовательно, метод Run() никогда не вызывается

+0

Как это сделать? – user2603506

+0

В ответе Павла был пример - новая тема (новый GSM()). Start(); ' – rdowell

1

Вы создаете новый GSM, но вы никогда не звоните бежать. Я предполагаю, что вы пытаетесь запустить поток, но для этого требуется использовать объект Runnable и Thread. Если это то, что вы хотите сделать Oracle has a tutorial on it.

Смежные вопросы