0

我是 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, sprite 不支持这种方式。

4

1 回答 1

0

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

我希望这会有所帮助。

于 2013-07-31T05:02:07.603 回答