android - sprite碰撞检测中心区域sprite

标签 android andengine

我正在研究 Sprite 碰撞。 有一个球和一个水桶,直到球碰到水桶的中间,才算点数。如果它碰到水桶的 Handlebars ,它应该反弹回来。

知道如何实现吗?

最佳答案

您也可以采用自定义 Bucket 类。然后将一个矩形附加到桶的中心。然后隐藏矩形。矩形应该是这个桶的 child 。

public class Bucket extends Sprite {

private Rectangle checkRectangle;

public Bucket(float pX, float pY, float pWidth, float pHeight,
        ITextureRegion pTextureRegion,
        ISpriteVertexBufferObject pSpriteVertexBufferObject) {
    super(pX, pY, pWidth, pHeight, pTextureRegion,
            pSpriteVertexBufferObject);
    // Declare rectangle object
    checkRectangle = new Rectangle(41, 54, 4, 4,
            getVertexBufferObjectManager());
    // set invisible
    checkRectangle.setVisible(false);
}

@Override
public void onAttached() {
    super.onAttached();
    super.onAttached();
    if (hasParent()) {
        attachChild(checkRectangle);
    }
}

当球触及位于桶中心的矩形时,您可以计算点数。为此,您需要像这样检查您的游戏场景:

if (aBucketObj.checkRectangle.collidesWith(aBallSprite)) {

        // do What you want
    }

最后你可以只检查桶本身的碰撞。

if (aBucketObj.collidesWith(aBallSprite)) {

        // // do What you want 
    }

希望,它对你有用。:)

关于android - sprite碰撞检测中心区域sprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15610468/

相关文章:

android - Andengine (gles2) - ButtonSprite 在点击时没有反应

android - Andengine: FontException 字母空间不足

java - 地形曲线到点阵列

android - 在 Android-surfaceflinger 中访问图层内容

android - Android 数字类型的 EditText 允许先输入负号

Android ProgressBar Indeterminate 未正确调整大小

java - 如何允许 Sprite 只从一侧移动到另一侧?

android - 我需要在 andengine 中制作一个盒子

android - 阻止来 self 的 android 应用程序的外出调用。

java - 如何避免使用许多 @SerializedName ?