我对游戏编程有点新意,我决定用Java做一些小实验。我正在使用Swing / AWT api通过绘制JPanel来实现游戏。但是,我不确定如何在游戏中实现“通过时间”。有没有人对此有任何想法?
谢谢!
答案 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次。
这是一个非常基本的游戏循环,它有一些问题,但如果你是初学者,它会做。一旦你变得更有经验,就可以查看变量和固定的时间步长游戏循环。
但是,您必须在单独的线程中运行此代码,以便实际显示更新。