我想制作一个未完成的跳跃游戏。我使用超级跳线代码。改变世界高度的主要部分是:
while (y < WORLD_HEIGHT - WORLD_WIDTH / 2) {
...
y += (maxJumpHeight - 0.5f);
y -= rand.nextFloat() * (maxJumpHeight / 3);
}
如果我将条件更改为大数(例如100或1000),则fps变低(我得到滞后)。 我尝试了很多东西。但我无法达成正确的答案。 如果有人可以,帮助我。 (对不起我的英文......)
答案 0 :(得分:1)
更改
while (y < WORLD_HEIGHT - WORLD_WIDTH / 2) {
到
while (y < WORLD_HEIGHT * 100) {
超级跳线World.generateLevel中的会产生更多内容,但实际上不会使关卡更长(显示系统最多只会显示为WORLD_HEIGHT,而且等级结束的城堡仍会显示同一个地方。
如果您想要制作一个非常大的级别,请更改WORLD_HEIGHT
本身的定义。它目前设置为大约20个屏幕的平台。
当您将等级提高时游戏速度变慢的原因是可能是因为所有每帧更新和碰撞检测代码都使用了所有元素的线性扫描。对于小级别,这很好,但如果你有很大的水平,这将无法扩展。但是,我只是猜测,你应该运行探查器来找出所有时间花在哪里。