Java 流畅的2D游戏速度变化
我用Swing创建了一个游戏,它有点不可靠,所以我开始用Slick2D游戏引擎重新制作它,我遇到了一些问题 每次调用update方法时,游戏的背景都会在屏幕上滚动一定数量的像素。这会不断加速和减速,因此背景会移动得非常快,然后非常慢,并不断波动 我已经尝试了*按增量(我想它会监控刷新率!)移动背景的值,但由于这不会给我一个确切的值,我可以用它将背景重置到左侧(2个背景从右向左移动。左侧一个在-800像素处移到右侧) 这是什么原因造成的?我如何克服它Java 流畅的2D游戏速度变化,java,performance,game-engine,slick2d,Java,Performance,Game Engine,Slick2d,我用Swing创建了一个游戏,它有点不可靠,所以我开始用Slick2D游戏引擎重新制作它,我遇到了一些问题 每次调用update方法时,游戏的背景都会在屏幕上滚动一定数量的像素。这会不断加速和减速,因此背景会移动得非常快,然后非常慢,并不断波动 我已经尝试了*按增量(我想它会监控刷新率!)移动背景的值,但由于这不会给我一个确切的值,我可以用它将背景重置到左侧(2个背景从右向左移动。左侧一个在-800像素处移到右侧) 这是什么原因造成的?我如何克服它 谢谢这里有一些阅读材料(顺便说一句,这里有一本
谢谢这里有一些阅读材料(顺便说一句,这里有一本):
update
以来经过的毫秒数
那么如何正确使用这个增量呢?假设你的背景以每秒100像素的速度移动。如果增量(在调用
update
时)为33毫秒,则在此次更新中您应该移动背景的量为100*(33/1000.0)=0.033
——因此您将移动背景0.033像素。这可能看起来很奇怪,你可能想知道搬家的意义是什么这里有一些阅读材料供你参考(顺便说一句,这里有一个:
update
以来经过的毫秒数
那么如何正确使用这个增量呢?假设你的背景以每秒100像素的速度移动。如果增量(在调用
update
时)为33毫秒,则在此次更新中您应该移动背景的量为100*(33/1000.0)=0.033
——因此您将移动背景0.033像素。这可能看起来很奇怪,您可能想知道移动的目的是什么?将背景运动基于系统时钟如何?将背景运动基于系统时钟如何?很抱歉,原始答案的语法很差。我已经把它清理得很干净了。对于你提供的这些信息,我感激不尽!很容易理解。我没有注意到任何语法错误,所以不要担心!当我说刷新率时,我的意思是上次调用Update()时,我只是不知道如何表达它。非常感谢。很抱歉原始答案的语法不好。我已经把它清理得很干净了。对于你提供的这些信息,我感激不尽!很容易理解。我没有注意到任何语法错误,所以不要担心!当我说刷新率时,我的意思是上次调用Update()时,我只是不知道如何表达它。万分感谢。