簡體   English   中英

java中的函數沒有完成

[英]Function in java does not finish

問候,

這是我的第一個問題,我只是將編程作為一種愛好,所以在試圖幫助我時請記住這一點。

我有一個功能,試圖讀取十字准線的中心點。 像游戲中的位置查找器。 代碼如下所示:

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;
    }

會發生什么事情,有時這個函數根本不會將控制權返回給主應用程序。 基本上它會卡住運行。 因此在函數中的最后一條注釋要做檢查。 我首先想到的可能是它與讀取函數所在類的靜態成員有關,所以我在最后看到了這些。 但問題仍然存在。

我無法真正看到或想到這種行為的任何原因。 我會非常感謝任何可能讓我誤以為錯的想法或評論。

問題是位置函數是由第二個函數調用的,而第二個函數是在case語句中,我錯過了中斷。 這就是應用程序“卡住”的原因。

你確定Main.RADAR_TOP小於Main.RADAR_BOTTOM嗎? 否則forloop應該旋轉一段時間(很長一段時間......)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM