【发布时间】:2012-02-15 12:15:46
【问题描述】:
我有一个 ArrayList,它在我的 Android 游戏中保存了飞机(敌人)。这些平面从屏幕的一侧移动到另一侧,用户必须躲避它们。当平面的 x 值小于 -50 时,它将从 ArrayList 中删除。发生这种情况时,它会导致当前屏幕上的所有平面轻微“跳跃”。它们消失了几毫秒,然后被重新绘制,但比它们应该在的位置晚了 2px。
这里是paint方法,其中planes是ArrayList
public void onDraw(){
bg1.onDraw(c);
bg2.onDraw(c);
chopper.onDraw(c);
score.onDraw(c);
// PAINTS THE PLANE OR DELETES IF OFF SCREEN
for (int i = 0; i < planes.size(); i++) {
Plane p = planes.get(i);
if(p.getX()<-50){
planes.remove(p);
}else{
p.onDraw(c);
if (p.getX() < 170) {
detectPlaneCollision(p, c);
}
}
}
}
有没有办法解决这个问题?我应该使用不同的数据结构吗?
谢谢
汤姆
【问题讨论】:
-
你为什么不花 10 秒钟的时间来正确地格式化你的代码
-
我试过了,输入时格式正确,不知道为什么会这样。