检查气泡网格中的碰撞

时间:2014-12-13 08:44:52

标签: ios cocos2d-x

我是游戏开发的新手。我正在使用cocos2dx在x-code中创建一个泡泡射击游戏。

一切正常,但有时碰撞不起作用。 playerBuble在最后一行不会发生碰撞,它会与最后一行发生碰撞。我的代码中的问题在哪里?

bool collided = false;
int collidedX = 0;
int collidedY = 0;

CCPoint playerBubblePosition = playerBubble->getPosition();

// Breadth first Search through the array starting from the bottom left
for (int y = GRID_HEIGHT-1; y >= 0; y--)
{
    if (collided)
        break;
    int maxWidth = GRID_WIDTH;
    if (y % 2 != 0) // odd rows have GRID_WIDTH -1 bubbles
    {
        maxWidth -= 1;
    }
    for (int x = 0; x < maxWidth; x++)
    {
        Bubble* bubble = m_pBubbles[x][y];
        //
        if ((y != 0 &&( bubble->getType() == EMPTY) || bubble->getFalling()) 
            continue;
        if ((ccpDistance(bubble->getPosition(), (playerBubblePosition)) < (BUBBLE_RADIUS))
        {
            collidedX = x;
            collidedY = y;
            collided = true;
            break;
        }
    }
}

0 个答案:

没有答案