比较颜色值OpenGL& C ++

时间:2016-02-14 10:00:58

标签: c++ image-processing rgb

我正在使用OpenGL和C ++开发一款俄罗斯方块式游戏,如果你匹配相同颜色的3个瓷砖,它们就会消失。现在我正在处理这个函数,该函数识别连续三个是否有相同的颜色。我正在创建一个Array来获取每个网格的颜色,并确定是否有3种匹配的颜色。

我在比较每个数组中的颜色方面遇到了问题。出于某种原因,(rowcolours[j]) == rowcolours[j+1])总是在值相同时变为假。

//Global variable
vec4 boardcolours[1200];

//---------------------------------------

void check3match()
{
    vec4 rowcolours[10]; // initializes array to be filled

    for (int i = 0; i < 10; i++)
    {
        rowcolours[i] = boardcolours[(6*i)+1]; // fill array with color values
        //visual aid to determine if values are equal. This shows up.
        cout << "Row" <<  i+1 <<" : " << rowcolours[i] << " - " << boardcolours[(6*i)+1] << endl;
    }

    for (int j = 0; j < 8; j++)
    {
        if ((rowcolours[j]) == rowcolours[j+1]) && (rowcolours[j+1] == rowcolours[j+2]))
        {
            // another visual aid, I'm not seeing this :(
            cout << "Row" << j+1 << " = " << j+2<< " = " << j+3 << endl;
        }
    }

}

示例输出:     第1行:(0,1,0,1)     第2行:(0,1,0,1)     第3行:(0,1,0,1)     第4行:(1,1,0,1)     第5行:......

我很困惑为什么这不起作用。我使用错误的比较运算符吗?我不熟悉C ++和OpenGL,也不知道如何比较这两个数组。非常感谢你提前。

0 个答案:

没有答案