Я создаю ATARI BREAKOUT, используя библиотеку acm.graphics
, и я пытаюсь получить доступ к «кирпичу» за пределами цикла for, чтобы удалить его. Я не могу найти другого способа создать кирпичи без цикла for. Помогите?Как использовать переменную, которая объявлена внутри цикла for вне цикла?
GRect brick = new GRect(brickwidth, brickheight);
for(j = 1; j <= nrows; j++) {
for(i = 0; i < bricksperrow; i++) {
brick.setLocation(i*(brickwidth + brickSep) + 1, brickoffset + j*(brickheight + brickSep));
if(j == 1 || j == 2) {
brick.setColor(Color.RED);
brick.setFilled(true);
}
else if(j == 3 || j == 4) {
brick.setColor(Color.ORANGE);
brick.setFilled(true);
}
else if(j == 5 || j == 6) {
brick.setColor(Color.YELLOW);
brick.setFilled(true);
}
else if(j == 7 || j == 8) {
brick.setColor(Color.GREEN);
brick.setFilled(true);
}
else if(j == 9 || j == 10) {
brick.setColor(Color.CYAN);
brick.setFilled(true);
}
add(brick);
}
}
В чем проблема, с которой вы столкнулись? – nullpointer
Где вы добавляете 'кирпич' в? Сохраните ссылку на созданные кирпичи в 'Collection',' List' или 'Map', а затем просто получите их оттуда, чтобы удалить их. –
Кстати, ваша цепочка 'if' может быть легко заменена оператором' switch'. Или вы могли бы значительно упростить условия 'if', если вы не хотите использовать« переключатель ». –