我目前正在使用lwjgl制作基于图块的2D平台游戏。我有一个能够在地图上跑动和跳跃的角色。移动窗户时遇到了一个奇怪的问题。当我移动窗口时,游戏会冻结,这不是什么大不了的事,因为当你松开它解冻时,但是在它解冻之后我的角色会根据你握住窗户的时间或者移动窗口。有什么我应该知道的库和显示器,或者你需要看到窗口初始化或物理和碰撞检测的代码?我不知道为什么窗户的移动会与玩家的位置有任何关系!
解决方案: 经过相当多的思考和尝试解决问题后,我意识到我在更新方法中使用delta,因为delta是按每次更新之间的时间计算的,因为当窗口被“移动”时游戏会冻结或“抓住”delta值在很短的时间内变得非常大,导致玩家或物体立刻被移动了很大的数量。为了解决这个问题,我只是对传递给我的更新方法的delta值设置了一个限制,这样玩家就无法一次移动10+个tile。