我正在编写一款手机游戏,比如Arkanoid游戏。我已经开始尝试绘制由矩形制成的矩阵,所以我写了一个" for"它超越了列和其他" for"在越过行的第一个内。当我执行应用程序时,这只是绘制一个行。我不知道什么是错的。求救!
private void dibujarLadrillos(Canvas canvas, Paint paint)
{
int width = 0;
int height = 0;
Rect[] ladrillos;
for(int j = 0; j<= 2; j++) {
ladrillos = new Rect[5];
for (int i = 0; i <= ladrillos.length - 1; i++) {
ladrillos[i] = new Rect(width, height, width + getWidth() / 5 - 10, height + getHeight()/10 );
width += ladrillos[i].width() + 10;
canvas.drawRect(ladrillos[i], paint);
}
height+= ladrillos[0].height() + 10;
}
}
答案 0 :(得分:0)
对于每个“j”,重复“i”循环。
因此,您生成和填充的new Rect[5]
的最后一个都无法访问。最后一个可以通过“ladrillos”访问。
你需要一个像这样的二维数组:
Rect[][] ladrillos = new Rect[5][5];
for循环必须相应地改变(我确定这需要一些微调,但不幸的是我不熟悉Arkanoid ;-))
for(int j = 0; j<= 2; j++) {
for (int i = 0; i <= ladrillos[j].length - 1; i++) {
ladrillos[j][i] = ...
width += ladrillos[j][i].width() + 10;
canvas.drawRect(ladrillos[j][i], paint);
}
height+= ladrillos[j][0].height() + 10;
}