2016-11-27 70 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