我正在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;


但是,如果我这样做,滚动不会显得很流畅。

最佳答案

您可以尝试将节存储为浮点值,并仅在计算结束时根据需要将其转换为int(仅用于呈现)。

关于java - Java中使用'-='递减的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3057623/

10-10 19:55