如何在android中的cocos2d中检测到Pixel碰撞

时间:2013-07-28 15:51:17

标签: cocos2d-android

我是cocos2d的新手,我在java中的eclipse中使用cocos2d lib制作游戏。我想做一个像素碰撞。我的游戏是一个2D游戏,一个球在迷宫中运行,我想检测迷宫墙和球之间的碰撞,我不能在CCSprite中使用getpixel。那我该怎么办呢? CCSprite.getpixel并不存在。我只能检查两个精灵之间的边界框碰撞。但是我不知道如何逐点像素比较像素。

 public boolean isCollisionDetected(CCSprite maze,CCSprite ball)
{


    CGRect bounds1 = maze.getBoundingBox();
    CGRect bounds2 = ball.getBoundingBox();


     if( CGRect.intersects(bounds1, bounds2) ){
/* i want to do pixel detection in here,actually i want to do something like this
            for (int i = collisionBounds.left; i < collisionBounds.right; i++) {
                for (int j = collisionBounds.top; j < collisionBounds.bottom; j++) {
                    int sprite1Pixel = getBitmapPixel(sprite1, i, j);
                    int sprite2Pixel = getBitmapPixel(sprite2, i, j); 
                    if( isFilled(sprite1Pixel) && isFilled(sprite2Pixel)) {
                        return true;
                    }*/


         return true;

     }
        return false;

}

但是Cocos2d,精灵并不支持这种方法。

1 个答案:

答案 0 :(得分:0)

当涉及到圆的碰撞检测时,您必须将圆的半径与从圆心到另一个对象的距离进行比较。如果圆的半径等于或小于圆的中心与物体之间的距离,则存在碰撞。

我希望有所帮助。