android - Andengine - 添加 Sprite 避免与现有的碰撞

标签 android andengine collision

我正在创建 Sprite 并将其添加到随机位置的循环场景中。我只想检查新创建的 Sprite 是否会与现有 Sprite 之一发生碰撞。有什么简单的方法可以检查吗?

最佳答案

创建新 Sprite 时,向其添加用户数据:

sprite.setUserData("sprite");

然后,在你创建一个定位 Sprite 之后,在你添加它之前迭代现有的 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.
}

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

关于android - Andengine - 添加 Sprite 避免与现有的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9046710/

相关文章:

android - 使用 ffmpeg 库在 android 中合并 .m4a 文件

android - AndEngine 和 TimerHandlers : referencing a member variable in a scene

collision-detection - Bullet Physics 中的运动体之间的碰撞

ios - 没有弹跳的 Sprite Kit 碰撞

java - Cuckoo Hashing Collisions 导致溢出

java - 如何展平2个不同的图像层?

android - Xamarin Android 应用响应 'Share To' 请求

android - 从设置 Activity 更改整个 Android 应用程序 Activity 的语言

java - 找不到参数的方法实现()