程序在运行前终止?

时间:2014-08-28 22:48:24

标签: java

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();
}
}

刚刚开始制作游戏引擎,但程序立即终止。有人可以指出错误吗?我知道那里缺少一些非常明显的东西,而且我要去面对,我很感激你的帮助。谢谢!

3 个答案:

答案 0 :(得分:7)

如果你想运行Runnable,你必须启动它。

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

请参阅http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html

答案 1 :(得分:1)

GSM实现Runnable,但你实际上并没有为它运行创建一个线程,因此永远不会调用run()方法

答案 2 :(得分:1)

你正在创建一个新的GSM,但你永远不会打电话。我假设您正在尝试启动一个线程,但这需要您使用Runnable和Thread对象。如果这是你想要做的Oracle has a tutorial on it