2016-01-14 7 views
0

У меня есть три кнопки, которые возвращают 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

Почему бы вам не создать отдельный класс для хранения вашей информации?

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 
} 

Таким образом, вместо того, чтобы ваш rectanglesArrayList<Rect> делают его ArrayList<RectInfo>.

Если вы не хотите, чтобы сделать это, вы могли бы, вероятно, сделать что-то подобное с Map<Rect, Boolean>, где вы могли бы put или get значения карт, основанных на любых условиях вы хотите использовать.

Смежные вопросы