Andengine - добавление спрайтов во избежание столкновений с существующими - PullRequest
1 голос
/ 28 января 2012

Я создаю спрайты и добавляю их в сцену в цикле в случайных местах.Я просто хочу проверить, не вызовет ли недавно созданный Sprite столкновение с одним из существующих.Есть ли простой способ проверить это?

1 Ответ

2 голосов
/ 28 января 2012

Когда вы создаете новый спрайт, добавьте в него пользовательские данные:

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.
}

Пользовательские данные могут быть любыми, они не обязательно должны быть строками.

...