我在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;
但如果我这样做,则滚动看起来并不顺畅。
答案 0 :(得分:1)
您可以尝试将该部分存储为浮点值,并在计算结束时仅将其转换为int(仅用于渲染)。