我正在和朋友一起编写游戏,但我们遇到的问题是在不同的PC上获得同样的动作。在Slick2D中,我们使用Delta来进行移动:
if (input key up)
{
sprite = up; // changing the sprite
if (no collision){
sprite.update(delta*3); //animation
y -= delta * 0.3f; // movement
}
}
问题在于delta是两帧之间的时间。而这次因为性能而在每台电脑上都不尽相同。所以计算机越慢,运动就越慢。
如何解决这个问题?
感谢您帮助我们,我希望您理解我的英语!
答案 0 :(得分:0)
如何为您的应用设置目标帧速率?它可以规范所有计算机的移动速度(假设计算机可以达到该速率)。因此,每当您第一次实例化您的游戏类时,请执行以下操作:
private static final int TARGET_FRAME_RATE = 60;
private static final int WINDOW_WIDTH = 640;
private static final int WINDOW_HEIGHT = 480;
public static void main(String[] args) {
try {
AppGameContainer appgc = new AppGameContainer(new MyGame());
appgc.setDisplayMode(WINDOW_WIDTH, WINDOW_HEIGHT, false);
// Set the target framerate for the appgc
appgc.setTargetFrameRate(TARGET_FRAME_RATE);
appgc.start();
} catch (SlickException e) {
System.err.println("There was an error executing the game...");
e.printStackTrace();
}
}