Andengine - 添加精灵避免与现有的碰撞

时间:2012-01-28 16:12:15

标签: android andengine collision

我正在创建精灵并在随机位置循环添加到场景中。我只是想检查新创建的Sprite是否会导致与现有的Sprite冲突。有没有简单的方法来检查它?

1 个答案:

答案 0 :(得分:2)

创建新精灵时,请向其添加用户数据:

sprite.setUserData("sprite");

然后,在创建定位精灵之后,在添加之前迭代现有的精灵:

int count = scene.getChildCount();
for(int i = 0; i < count; i++) {
    IEntity entity = scene.getChild(i);
    if(entity instanceof Sprite) {
        if(entity.getUserData().equals("sprite"))
            if(((Sprite)entity).collidesWith(newSprite))
                //Don't add the new sprite.
}

用户数据可以是您想要的任何内容,也不必是字符串。