我正在用c ++重新创建一个入门项目的俄罗斯方块。我正在使用allegro进行用户输入并绘制到显示器上。每个动作,移动,旋转都插入到 2x2矩阵。现在,我被困在将实际矩阵绘制到屏幕上。 这是我当前的代码:
void drawGrid(int grid[10][20]) { // Draws the grid to the screen
for (int y = 0; y < 20; y++) {
for (int x = 0; x < 10; x++) {
if (grid[x][y] == 1) {
al_draw_filled_rectangle(x * 32 + 10, y * 32, x * 32 + 10 + 32, y * 32 + 32,
al_map_rgb(255, 255, 255)); // Draws a white square, 32x32
}
}
}
}
它显示旋转了90度的白色方块,并且部分之间有一些随机的间隔。例如
我要打印的网格:
0011000000
0001100000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
答案 0 :(得分:0)
我可以告诉你,矩阵图片与传递给函数的2D数组不匹配。该函数采用20列的10红色数组。您的图片是反转的,因此屏幕的着色方式也是反转的。如果要绘制图形上的内容,只需切换行和列,然后传递[20] [10]的数组