#java #lwjgl #slick2d #tiled
#java #lwjgl #slick2d #плиточная
Вопрос:
Я тестирую использование TileD с Slick2D в Java, но когда я пытаюсь импортировать карту и визуализировать ее, функция рендеринга выполняется плавно, но карта не отображается на моем экране. Мой проигрыватель показывает, но не карту. Я новичок в Java, поэтому извините за мой беспорядочный код.
Класс MapRender:
Функция render() вызывается в цикле после KeyListener, который вызывает функцию loadMap(), и «render» выводится на консоль, но карта никогда не отображается. Как я мог это исправить?
package com;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.tiled.TiledMap;
public class MapRender {
private TiledMap testMap;
public boolean mapAdded = false;
public MapRender() {
}
public void render() throws SlickException {
if(mapAdded)
{
//Rendering map
testMap.render(100,100,0,0,100,100);
System.out.println("render");
}
}
public void loadMap() throws SlickException {
//Adding map
testMap = new TiledMap("maps/testMap.tmx", false);
mapAdded = true;
}
}
Цикл, вызывающий рендеринг в основном классе
public static void main(String[] args) {
while(true)
{
try {
mapRender.render();
} catch (SlickException e1) {
e1.printStackTrace();
}
}
}
Любая помощь будет оценена по достоинству!
Ответ №1:
Цикл, который вы закодировали в своей основной функции, не позволяет Slick2D запускать какой-либо собственный код для обновления изображения на экране. В результате ваша программа, вероятно, застряла, просто снова и снова отображая карту в какой-то невидимый буфер.
Ознакомьтесь с примером «Hello World» в Slick2D wiki о том, как реализовать основной цикл, и добавьте свой вызов рендеринга карты в его render
метод.
Комментарии:
1. Большое вам спасибо, вы направили меня в правильном направлении, я переместил ее в функцию рендеринга BasicGame, и она сработала