首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我在处理的设置方法中绘制了一个映射,并且完全停止了draw()的运行,那么我的映射不应该至少绘制一次吗?

如果我在处理的设置方法中绘制了一个映射,并且完全停止了draw()的运行,那么我的映射不应该至少绘制一次吗?
EN

Stack Overflow用户
提问于 2019-01-10 17:14:05
回答 1查看 318关注 0票数 1

我有一个旧的项目,涉及使用展开地图和处理绘制,well...maps哈哈。该项目运行良好,但我正在检查一些东西,以帮助一个同事,并遇到了一些我不太明白的事情。

我的问题如下:如果我在处理的draw()方法中调用draw()draw()方法(map.draw()),一切都会正常工作,所有的东西都会被不断地重新绘制,并且我可以正确地与应用程序和诸如此类的东西交互。但是,如果我在处理的setup()方法中执行setup(),然后避免处理的draw()方法永远运行,那么映射不是应该被绘制一次然后所有的东西都关闭吗?

相反,当我在map.draw()中运行setup(),然后强制停止所有操作时,它不会绘制任何东西,甚至一次都不会。

另外,我尝试过只运行一次Processing的draw()方法,在处理的draw()方法中只调用map.draw()一次,方法是在setup()的末尾使用noLoop()。我的项目真的很长,所以我只会发布一些代码来测试我的这个小问题。

代码语言:javascript
复制
private static final boolean offline = false;
public static String mbTilesString = "/Users/roy/IdeaProjects/UnfoldingMaps/data/blankLight-1-3.mbtiles"
private UnfoldingMap map;

public void setup() {
    size(900, 700, OPENGL);

    if (offline) {
        this.map = new UnfoldingMap(this, 200, 50, 650, 600, new MBTilesMapProvider(mbTilesString));
    } else {
        this.map = new UnfoldingMap(this, 200, 50, 650, 600, new Microsoft.RoadProvider());
    }

    MapUtils.createDefaultEventDispatcher(this, this.map);

    noLoop(); // draw() gets called only once
}

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

我希望这张地图只绘制一次,然后一切都停止。相反,我得到以下信息:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-10 17:32:56

你所说的一切都是有意义的,你的期望也是正确的。您可以通过绘制矩形而不是地图来确认行为。

我最好的猜测是,展开映射与noLoop()函数不兼容。我假设展开映射有一些依赖于绘制循环的内部逻辑:异步加载映射块、响应用户输入等等。

您可以通过在setup()函数中执行类似的操作来探索这种行为:

代码语言:javascript
复制
noLoop();

for(int i = 0; i < 100; i++){
  draw();
}

--这是一个黑客,目的是探索行为。我不推荐这是个解决办法。如果我这样做,就会看到地图被部分加载:

这告诉我,展开映射在某种程度上依赖于多次调用draw()来处理加载。这是有意义的,因为加载是异步的,并且随着时间的推移在后台发生。这可能与在加载图像后需要绘制处理的主线程有关。如果您想要确定,您可以查看展开地图的来源来了解它的内部行为。

如果您真的需要在展开映射中使用noLoop(),则可以在delay()函数中使用hack。或者,您可以查看文献资料的展开映射;也许有一个有用的函数我们已经错过了。或者您可以修改源以获得您想要的行为。或者,您可以使用PGraphics或其他工具将一些东西组合在一起。

但大多数情况下,我认为您应该避免在展开映射中使用noLoop()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54133756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档