Проблема уменьшения в Java с '- =' - PullRequest
1 голос
/ 17 июня 2010

Я делаю игру с прокруткой на Android и с трудом выясняю, почему код ниже не уменьшается после 0.

Объекты начинаются в конце экрана (таким образом, позиция 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 Ответ

1 голос
/ 17 июня 2010

Вы можете попытаться сохранить раздел как значение с плавающей запятой и преобразовать его в int только в случае необходимости в конце вычисления (только для рендеринга).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...