【问题标题】:Andengine - adding sprites avoiding collisions with existingAndengine - 添加精灵以避免与现有的碰撞
【发布时间】:2012-01-28 16:12:14
【问题描述】:

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

【问题讨论】:

    标签: android andengine collision


    【解决方案1】:

    当你创建一个新的精灵时,向它添加用户数据:

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

    用户数据可以是任何你想要的,它不必是字符串。

    【讨论】:

    • 谢谢 - 我做了这样的循环,如果有比检查所有其他对象的碰撞更有效的方法就可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多