2016-11-27 72 views
0

經過一些初步的麻煩之後,我現在得到了UnfoldingMap從Eclipse開始工作,如the tutorial中所述。這似乎工作得很好,但draw()方法反覆以高頻率調用,導致CPU達到100%。即使在繪製整個地圖之後,這個過程仍會無限期地繼續下去。這裏是一個非常簡單的測試應用程序的代碼:展開地圖忙於循環繪製()

public class SimpleMapApp extends PApplet { 

    UnfoldingMap map; 

    public void setup() { 
     size(800, 600); 
     map = new UnfoldingMap(this, new Microsoft.AerialProvider()); 
    } 

    public void draw() { 
     map.draw(); 
    } 

    public static void main(String[] args) { 
     PApplet.main("SimpleMapApp"); 
    } 
} 

通過把一個sleep()在抽籤的方法,我可以看到,它與畫瓷磚做的,一對夫婦的瓷磚被描繪在每次調用draw()。我認爲它也會不斷從服務器加載地圖圖塊,至少谷歌地圖似乎已經禁止了我的IP地址,在我開始使用他們的服務器之後。

如何停止的一再呼籲,draw()一切已經繪就之後?

回答

1

有幾個選項來控制如何打開Draw方法被調用:

  1. 使用frameRate()
  2. 使用noLoop()手動暫停執行,並使用loop()
+0

你的意思是恢復它在設計中draw()函數被重複調用?我什麼時候調用noLoop() - 也就是說,我怎麼知道所有東西都被繪製了? – fishinear

+0

是:draw()是Processing每秒鐘調用60次的「無限循環」。我建議先嚐試'''frameRate(1)'''。我沒有用過展開地圖所以不知道什麼行爲是(它加載的瓷磚在後臺線程或者它依賴於加工的動畫線程) –

+0

啊,謝謝,我不熟悉的處理,所以不知道這事。我認爲它是用於動畫,但它仍然是一種特殊的方法。 – fishinear