【问题标题】:Attaching Boolean Values to Rect for Comparison将布尔值附加到 Rect 以进行比较
【发布时间】:2016-01-15 03:11:14
【问题描述】:

我有三个按钮返回真或假,具体取决于它们是否被按下。我还有一个要为其分配特定布尔值的矩形 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) {

}

}

我该怎么做?

【问题讨论】:

    标签: java android


    【解决方案1】:

    你为什么不做一个单独的类来存储你的信息?

    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&lt;Rect&gt;,而是将其设为ArrayList&lt;RectInfo&gt;

    如果您不想这样做,您可以使用Map&lt;Rect, Boolean&gt; 完成类似的操作,您可以在putget 根据您想要使用的任何条件映射值。

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多