Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 与位图和矩形相交/碰撞_Android_Intersect_Rect - Fatal编程技术网

Android 与位图和矩形相交/碰撞

Android 与位图和矩形相交/碰撞,android,intersect,rect,Android,Intersect,Rect,我一直在尝试编写代码,当坐标cx/cy与矩形相交时,矩形会改变颜色。这件事把我逼疯了。这是我的矩形代码 for(int k = 0; k<=15; k++){ k = k * 55; for(int i=0;i<=9;i++){ i = i*55; bounds.set(left+i,top+k,right+i,bottom+k); paint.setColor(Colo

我一直在尝试编写代码,当坐标cx/cy与矩形相交时,矩形会改变颜色。这件事把我逼疯了。这是我的矩形代码

for(int k = 0; k<=15; k++){
        k = k * 55;
        for(int i=0;i<=9;i++){
             i = i*55;  
             bounds.set(left+i,top+k,right+i,bottom+k);
             paint.setColor(Color.WHITE);
             canvas.drawRect(bounds, paint);
             if (cx == left || cx == right || cy==top|| cy == bottom){
                 paint.setColor(Color.DKGRAY);
                 canvas.drawRect(bounds, paint);
             }
             i=i/55;
            }    
        k = k/55;
    }   

for(int k=0;k您是否尝试膨胀矩形,并在相交时更改颜色

请注意,
left
right
top
bottom
的值实际上从未更改,因此,如果在循环的第一次迭代中没有触发检查,它将永远不会更改

另外,请注意,在它相交的情况下,它会将颜色设置为DKGRAY,但在下一个循环中将其直接设置为白色。这是您想要的吗

我想你的意思是这样做的。这里,我们将与实际变化的值进行比较

for(int k = 0; k<=15; k++){
    k = k * 55;
    for(int i=0;i<=9;i++){
         i = i*55;  
         int boundsLeft = left + i;
         int boundsTop = top + k;
         int boundsRight = right + i;
         int boundsBottom = bottom + k;
         bounds.set(boundsLeft, boundsTop, boundsRight, boundsBottom);
         paint.setColor(Color.WHITE);
         canvas.drawRect(bounds, paint);
         if (cx == boundsLeft|| cx == boundsRight || cy==boundsTop || cy == boundsBottom ){
             paint.setColor(Color.DKGRAY);
             canvas.drawRect(bounds, paint);
         }
         i=i/55;
        }    
    k = k/55;
}   

for(int k=0;k
for(int i=0;i=boundsLeft&&cx=boundsTop&&cy)可以像这样使用矩形类:矩形r1=新矩形(x,y,宽度,高度);…if(r1.相交(r2))…我希望它是一个永久的矩形,一个矩形一个矩形地改变。这是一个很好的输入,它现在一行一行或一列一列地运行。如果它向左或向右运行,它会改变颜色。如果它从上到下,它会改变整列的颜色。它会将行的颜色更改为深灰色。
             for(int i=0;i<=9;i++){
             i = i*55;  
             int boundsLeft = left + i;
             int boundsTop = top + k;
             int boundsRight = right + i;
             int boundsBottom = bottom + k;
             bounds.set(boundsLeft, boundsTop, boundsRight, boundsBottom);
             if(boxes[k][i]==0){
                 paint.setColor(Color.GREEN);
                 canvas.drawRect(bounds, paint);
             }
             else{
                 paint.setColor(Color.DKGRAY);
                 canvas.drawRect(bounds, paint);
             }
             if (cx >= boundsLeft && cx <= boundsRight && cy>=boundsTop && cy <= boundsBottom ){
                 plow.set(boundsLeft, boundsTop, boundsRight, boundsBottom);
                 paint.setColor(Color.DKGRAY);
                 canvas.drawRect(plow, paint);
                 boxes[k][i]=1;
             }
              i=i/55;

            }