Java 2D游戏中的图形抖动

时间:2013-08-30 15:41:51

标签: java 2d

我正在制作游戏并且目前遇到了图形抖动的问题。按AWSD键时,它会从顶部开始抖动。抖动从顶部开始并传播到整个屏幕。 这是一个视频文件:https://dl.dropboxusercontent.com/u/94218355/javaw%202013-08-30%2010-36-45-171.avi

以下是游戏文件:https://dl.dropboxusercontent.com/u/94218355/Game.rar 游戏文件是你可以自己测试的。 请查看Screen.java,因为我认为这是错误隐藏的地方。

2 个答案:

答案 0 :(得分:0)

您应该使用double buffering or page flipping来避免抖动。

答案 1 :(得分:0)

这是一个有根据的猜测,因为没有可用的来源。这个问题很可能与你如何处理输入有关,因为如果密钥是通过KeyListener接口注册的,按键之间存在固有的延迟,因此java2d游戏的输入存在常见错误。如果你按下一个键(a)你期望的是aaaaa..,但实际得到的是a|inputlag|a|inputlag|...这个延迟相当大(远高于通常的60 FPS)所以当你按下时将相机移动到相机附近的按键似乎很紧张。

简单的解决方案是对键使用布尔标志,并在按下键时将它们设置为true,并在释放后将其设置为false,请参阅我的示例代码here。或使用keybindings