【发布时间】:2014-06-13 13:06:10
【问题描述】:
如何使用每秒运行 60 次的厚方法调用我的绘画方法来绘制其中的所有内容。
这是fps计算:
int FRAMES_PER_SECOND = 60;
long maxWorkingTimePerFrame = 1000 / FRAMES_PER_SECOND; //this is optional
long lastStartTime = System.currentTimeMillis();
while(true)
{
lastStartTime = System.currentTimeMillis();
Tick();
long processingTimeForCurrentFrame = System.currentTimeMillis() - lastStartTime;
if(processingTimeForCurrentFrame < maxWorkingTimePerFrame)
{
try
{
Thread.sleep(maxWorkingTimePerFrame - processingTimeForCurrentFrame);
}
catch(Exception e)
{
System.err.println("TSEngine :: run :: " + e);
}
}
}
那我怎么打电话:
public void paint( Graphics g ) {
}
在我的 Tick 方法中?
【问题讨论】:
-
呃,从你的
Tick方法的实现中调用它? -
你的意思是像替换paint方法并使用:public static void Tick(Graphics g){}代替?
-
我不敢相信这个问题还没有被问到。
标签: java loops methods paint frame-rate