У меня есть старый проект, который использует Unfolding Maps and Processing для рисования, ну ... карты, ха-ха. Проект работает нормально, но я кое-что проверял, чтобы помочь коллеге, и столкнулся с чем-то, чего я не совсем понимаю.
У меня следующий вопрос: если я вызываю метод draw()
Unfolding Map (map.draw()
) в методе draw()
Processing, все работает нормально, все непрерывно перерисовывается, и я могу правильно взаимодействовать с приложением и еще чем-то. Тем не менее, если я выполняю map.draw()
в методе Processing setup()
и затем избегаю когда-либо запущенного метода Processing draw()
, разве карта не будет нарисована один раз, а затем все закроется?
Вместо этого, когда я запускаю map.draw()
в setup()
и затем заставляю все остановиться, он ничего не рисует, даже один раз.
Кроме того, я попытался запустить метод draw()
Обработки только один раз и вызвать map.draw()
только один раз в методе draw()
Обработки, используя noLoop()
в конце setup()
. Мой проект очень длинный, поэтому я просто опубликую немного кода, предназначенного только для проверки этого моего маленького вопроса.
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();
}
Я ожидаю, что карта будет нарисована один раз, а затем все остановится.
Вместо этого я получаю следующее: