所以我创建了一个名为Sprite的类。我希望能够轻松地控制许多Sprite类,并且不知道如何操作。我听说过arraylist,但我不知道如何使用它。我google了很多次,现在几天我找不到一个好的简单教程。基本上我希望能够创建大约5个精灵,并能够检查其碰撞。我使用Rect来检查碰撞。 这就是我检查碰撞的方法:
if(Rect.intersects(sprite.dst, floor))
它可以工作,但我想控制多个精灵并检查它们的碰撞并在碰撞时删除它们。任何好的教程或想法?请帮忙。我希望我对我的问题很清楚..谢谢!
我找到了一种方法,但现在我有一个问题,为精灵做一个随机的y位置:
public void rockUpdate(Canvas canvas){
int y = rand.nextInt(canvas.getHeight()-doodle.getHeight()) + 1;
int x =canvas.getWidth();
rockSprites.add(new Sprite(GameSurface.this, doodle, 4, 1, x, y));
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
el++;
}
答案 0 :(得分:3)
你的意思是这样的吗?
List<Sprite> spriteList = new ArrayList<Sprite>();
spriteList.add(new Sprite());
// (etc)
List<Sprite> spriteListForLoop = new ArrayList<Sprite>(spriteList);
for (Sprite sprite: spriteListForLoop)
{
if (Rect.intersects(sprite.dst, floor))
{
spriteList.remove(sprite);
}
}
这样的东西是非常基本的Java ...你应该能够在任何基本的java教程中找到它。如果这是一个游戏,你可能最好找到更复杂的东西 - 就像精灵对象上的一个方法,每次Sprite移动时都会检查特定Sprite的交集。