Java 未正确计算增量时间

Java 未正确计算增量时间,java,android,interpolation,frame-rate,game-loop,Java,Android,Interpolation,Frame Rate,Game Loop,我正在尝试创建一个游戏,其中对象在计时器上生成,然后开始移动。我希望保持帧速率与游戏速度无关,因此我尝试实现增量时间: lastTime = thisTime; thisTime = (int) SystemClock.currentThreadTimeMillis(); deltaTime = thisTime - lastTime; for (int i = 0;i < objectList.size();i++) { objectList.get(i).updatePosi

我正在尝试创建一个游戏,其中对象在计时器上生成,然后开始移动。我希望保持帧速率与游戏速度无关,因此我尝试实现增量时间:

lastTime = thisTime;
thisTime = (int) SystemClock.currentThreadTimeMillis();
deltaTime = thisTime - lastTime;

for (int i = 0;i < objectList.size();i++) {
    objectList.get(i).updatePosition(deltaTime);
    objectList.get(i).display(bitmapCanvas);
}
}

根据我的理解,速率(在本例中为10)应该除以1000,因为deltaTime是以毫秒为单位的,但我也尝试过使用各种其他值,并且对象只是在屏幕上生成而不移动。在尝试实现插值之前,我没有让他们移动的问题

如果有帮助的话,我记录了delta时间,通常是20/30左右。这正常吗


我已经看了大概5到6个关于GameDev的问题,以及一些关于堆栈溢出的问题,但我想我一定是误解了什么,因为我不能让它工作。

所以这看起来不是没有答案,Jon Skeet(显然)是正确的:


10/1000的计算(在编译时)正在整数运算中执行,因此它是0。。。尝试10/1000华氏度,或仅0.01华氏度


10/1000的计算(在编译时)正在整数运算中执行,因此它是0。。。试试10/1000华氏度,或者0.01华氏度。@JonSkeet我一直在寻找那一句话的答案^ ^不知道为什么我不记得了。谢谢乔恩·斯基特。
public void updatePosition(float deltaTime) {
    this.y += 10/1000 * deltaTime;