1

所以我创建了一个名为 Sprite 的类。我希望能够轻松控制许多 Sprite 类,但不知道如何。我听说过arraylist,但我不知道如何使用它。我用谷歌搜索了很多次,几天来我找不到一个好的简单教程。基本上我希望能够创建大约 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++;

    }
4

1 回答 1

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 移动时检查该特定 Sprite 的交集。

于 2011-11-03T01:45:23.630 回答