在Java中每秒更新游戏x次

时间:2012-08-07 15:08:26

标签: java swing time updating

我对游戏编程有点新意,我决定用Java做一些小实验。我正在使用Swing / AWT api通过绘制JPanel来实现游戏。但是,我不确定如何在游戏中实现“通过时间”。有没有人对此有任何想法?

谢谢!

2 个答案:

答案 0 :(得分:1)

也许您应该在Java中查看线程http://www.javaworld.com/jw-04-1996/jw-04-threads.html 创建一个专门用于重新绘制和处理游戏循环的新线程(参见其他答案)。

编辑:本教程可能很有用:http://zetcode.com/tutorials/javagamestutorial/

答案 1 :(得分:1)

您正在寻找的是一个游戏循环。有很多关于此的文档。这是一个简单的:

private boolean isRunning;

public void gameLoop()
{
    while(isRunning) //the loop
    {
        doGameUpdates();
        render();
        Thread.sleep(1000); //the timing mechanism
    }
}

这个想法是while循环中的代码反复执行,并且在执行之间会休眠1秒。这是实现“时间的流逝”的一种方式。例如,如果您有一个具有X位置的对象,并且在while循环中放置object.X += 1,则对于循环的每次迭代,对象的X位置将前进1,即每秒1次。

这是一个非常基本的游戏循环,它有一些问题,但如果你是初学者,它会做。一旦你变得更有经验,就可以查看变量和固定的时间步长游戏循环。

但是,您必须在单独的线程中运行此代码,以便实际显示更新。