我正在为一个大学项目构建一个俄罗斯方块克隆,我遇到了一个小问题。我正在检查砖块是否可以移动到某个区域的方式是我检查它应该移动到的区域并查看它的颜色是黑色(背景颜色),如果它是黑色则砖块被移动那里。
要检查颜色,我使用以下代码:
for (int i = 0; i < 4; i++)
{
unsigned char pixel[4];
glReadPixels(x[ShapeXC[i]], y[ShapeYC[i]], 1, 1, GL_RGB, GL_UNSIGNED_BYTE, pixel);
if (((int)pixel[0] == 0) && ((int)pixel[1] == 0) && ((int)pixel[2] == 0))
temp[i] = 1;
}
Temp [i]是每个砖块位置的布尔检查。 ShapeXC和ShapeYC是我建立的一个新的坐标系统,基本上包含60的倍数,当你将一块砖的ShapeXC和ShapeYC放在一起时,你得到一个砖的右下角x / y坐标。 / p>
我希望这是足够的信息,确切的错误是:bSlayer.exe中0x697DF6A7(atioglxx.dll)的未处理异常:0xC00000FD:堆栈溢出(参数:0x00000000,0x00FF2000)。
如果需要更多我的代码,请告诉我,我可以提供整个文件。
的代码