Итак, вам нужен (так называемый) «флаг»
Цель этого «флага» - управлять состоянием и предоставлять средства, с помощью которых вы можете проверить это конкретное состояние.
В этом случае мы хотим сделать кирпич невидимым при выполнении некоторого условия.
Итак, начнем с введения нашего "флага" в качестве поля экземпляра в класс Brickbase
..
public class Brickbase {
private boolean visible = true;
Сладкий, мы знаем, что есть способ определить, видим ли кирпич или нет, и, возможно, изменить это состояние.
Итак, очевидно, первое, что мы могли бы сделатьэто определить, должен ли кирпич быть окрашен или нет, основываясь на состоянии "флага", может быть что-то вроде ...
public void draw(Graphics myBuffer) {
if (visible) {
myBuffer.setColor(getColor());
myBuffer.fillRect(getX(), getY(), getXWidth(), getYWidth());
}
}
Далее, мы хотим каким-то образом изменить состояние нашего "флага"«в вашем случае, когда по кирпичу бьют, может быть, что-то вроде ...
public boolean inBrickbase(arkBall ark) {
if (visible) {
for (int x = getX(); x <= getX() + getXWidth(); x++) //starts at upper left corner(x,y)
{
for (int y = getY(); y <= getY() + getYWidth(); y++) {
if (distance(x, y, ark.getX(), ark.getY()) <= ark.getRadius()) //checks every point on the bumper
{
visible = false;
return true;
}
}
}
}
return false;
}
Теперь, прежде чем кто-то на это скажет, я мог бы рассмотреть вопрос об удалении кирпича из любой модели, которой он управляет, когда inBrickbase
возвращает true
, тем самым сохраняя все хлопоты и сокращаяобщие вычислительные затраты, но у меня недостаточно контекста, чтобы найти решение для этого