java中的函数未完成
您好
这是我的第一个问题,我只是把编程作为一种爱好,所以当我试图帮助我时,请记住这一点
我有一个函数,它试图读取十字线的中心点。有点像游戏中的定位仪。代码如下所示:
public static Point location(BufferedImage image) {
int pixelLeft;
int pixelTop;
Point point = new Point();
for (int i = Main.RADAR_TOP+1; i < Main.RADAR_BOTTOM; i++) {
pixelLeft = image.getRGB(Main.RADAR_LEFT+7, i);
if ((((pixelLeft>>16) & 0xff) > 35 &&
((pixelLeft>>8) & 0xff) > 35 &&
((pixelLeft) & 0xff) > 35)){
point.y = i;
break;
}
}
for (int j = Main.RADAR_LEFT+1; j < Main.RADAR_RIGHT; j++) {
pixelTop = image.getRGB(j, Main.RADAR_TOP+5);
if ((((pixelTop>>16) & 0xff) > 35 &&
((pixelTop>>8) & 0xff) > 35 &&
((pixelTop) & 0xff) > 35)){
point.x = j;
break;
}
}
System.out.println("location: "+point.x+","+point.y);
/** lastX = point.x;
lastY = point.y;*/
return point;
}
发生的情况是,有时,此函数只是不将控制返回给主应用程序。基本上,它在运行时会被卡住。因此,函数中的最后一条注释要进行检查。我首先认为它可能与读取函数所在的类的静态成员有关,因此我将这些成员注释掉,正如您在最后看到的那样。但问题仍然存在
我真的看不出或想不出这种行为的任何原因。如果有任何想法或评论能指出我的错误或其他东西,我将不胜感激
# 1 楼答案
你确定那是主要的吗。雷达顶部比主顶部小。雷达底部? 否则forloop应该旋转一段时间(很长时间…)
# 2 楼答案
问题是location函数是由第二个函数调用的,而第二个函数在case语句中,我错过了中断。这就是应用程序“卡住”的原因