将布尔值附加到Rect以进行比较

时间:2016-01-14 17:34:05

标签: java android

我有三个按钮返回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) {

}

}

我该怎么做?

1 个答案:

答案 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>完成类似的操作,您可以根据条件putget确定地图值你想用。