使用' - ='在Java中减少问题

时间:2010-06-16 22:27:45

标签: java android

我在Android上制作滚动游戏,并且很难弄清楚为什么下面的代码不会减少到0以上。

对象从屏幕的末尾开始(因此x位置等于屏幕的宽度)对象通过递减x位置在屏幕上移动。我希望它们滚动离开屏幕,但是当x位置达到0时,对象只保持0,它们不会移动到底片中。

以下是我在屏幕上移动对象的代码

private void incrementPositions(long delta) {

    float incrementor = (delta / 1000F) * Globals.MAP_SECTION_SPEED;        

    for(Map.Entry<Integer, HashMap<Integer, MapSection>> column : scrollingMap.entrySet()) {
        for(Map.Entry<Integer, MapSection> row : column.getValue().entrySet()) {
            MapSection section = row.getValue();
            section.x -= incrementor;           
        }
    }       
}

如果我改变

,它可以正常工作
section.x -= incrementor;

section.x = section.x - (int)incrementor;

但如果我这样做,则滚动看起来并不顺畅。

1 个答案:

答案 0 :(得分:1)

您可以尝试将该部分存储为浮点值,并在计算结束时仅将其转换为int(仅用于渲染)。