2
外推打破碰撞检测
在对精灵的运动进行推断之前,我的碰撞效果非常好。但是,在对精灵的运动进行推断(以使物体平滑)之后,碰撞不再起作用。 这是外推之前的工作方式: 但是,在执行推断后,碰撞例程将中断。我假设这是因为它作用于外推例程(位于我的render调用中)产生的新坐标。 应用推断后 如何纠正这种行为? 我尝试在推断后再进行一次额外的碰撞检查-这似乎确实解决了许多问题,但是我将其排除在外是因为将逻辑放入渲染中是不可能的。 我还尝试制作了spritesX位置的副本,对其进行推断并使用该位置而不是原始位置进行绘制,从而保留了原始位置以供逻辑使用-这似乎是一个更好的选择,但仍然会产生一些奇怪的效果与墙壁碰撞时。我很确定这也不是解决此问题的正确方法。 我在这里找到了几个类似的问题,但是答案并没有帮助我。 这是我的推断代码: public void onDrawFrame(GL10 gl) { //Set/Re-set loop back to 0 to start counting again loops=0; while(System.currentTimeMillis() > nextGameTick && loops < maxFrameskip){ SceneManager.getInstance().getCurrentScene().updateLogic(); nextGameTick+=skipTicks; timeCorrection += (1000d/ticksPerSecond) % 1; nextGameTick+=timeCorrection; timeCorrection %=1; loops++; tics++; } extrapolation = (float)(System.currentTimeMillis() + skipTicks - …