我有三个按钮返回true或false,具体取决于是否按下它们。我还有一个矩形的Arraylist,我想为其分配特定的布尔值。我有另一个单独的矩形穿过屏幕,感兴趣的是矩形的arraylist。当它相交时,我希望它将设置的布尔值与按钮返回的值进行比较。我不知道该如何做到这一点,到目前为止我正在思考这个问题:
rectangles.get(0) = rectangles.add(new Rect(xCoor, yCoor, rectW, rectH));
setFinger(rectangles.get(0), true, true, false);
for (Rect rect : rectangles) {
if (bar.intersect(rect)) {
checkButtons();
Log.d("GameScreen", "Note and Bar Intersected");
}
}
private void setFinger (Rect rect, boolean F1, boolean F2, boolean F3) extends Rect {
}
private void checkButtons() {
for (int t = 0; t<500; t++) {
Rect Rec_Integer = rectangles.get(t);
Log.i("GameScreen", Rec_Integer.toString());
checkBoolean(Rec_Integer);
}
}
private void checkBoolean(Rect rect) {
if (rect.getCorrectFinger() == rect.getUserFinger) {
playCorrectSound();
}
if (rect.getCorrectFinger() != rect.getUserFinger) {
playIncorrectSound();
}
private void getUserFinger() {
if (B1Pressed) {
}
}
我该怎么做?
答案 0 :(得分:0)
为什么不单独上课来存储您的信息?
class RectInfo() {
private Rect rect;
private boolean pressed;
// for the constructor I'm assuming it won't be pressed on instantiation
RectInfo(Rect rect) {
this.rect = rect;
pressed = false;
}
boolean isPressed() {
return pressed;
}
void setPressed(boolean pressed) {
this.pressed = pressed;
}
// for fun / ease
void toggle() {
this.pressed = !this.pressed;
}
// getters/setters for rect of your choosing
}
所以,不要让rectangles
ArrayList<Rect>
成为ArrayList<RectInfo>
。
如果您不想这样做,您可以使用Map<Rect, Boolean>
完成类似的操作,您可以根据条件put
或get
确定地图值你想用。