我一直在开发一个在背景中具有滚动环境(2D)的概念验证游戏。我有一个名为 roadTile 的自定义类对象,它基本上是一个 200 像素高的块,上面有一张要绘制的图片和一些物理特性。我一次将图块存储在 LinkedList 5 中。我有一个主循环,负责移动所有内容并检查碰撞。该循环应该每 50 毫秒执行一次(由计时器控制),它通过测量最后一次运行的长度然后从睡眠时间中减去它来保持速率固定。
这通常运行良好,循环运行时间不到一毫秒,但是当我启动程序时,它在前 2-7 次后“窒息”。我删除了旧瓷砖并在列表底部放置了一个新瓷砖。在调用 add (new roadTile()) 时,程序会暂停 20-400 毫秒,这是计算机时间的一千年,最重要的是,行为并不一致。有时它可以正常工作,有时则不行。
我很不知道如何消除这个,有什么想法吗?