我在Java中使用Slick2D测试TileD的使用,但是当我尝试导入地图并渲染它时,渲染功能运行平稳但地图不会显示在我的屏幕上。我的播放器显示但不是地图。我是java的新手,请原谅我凌乱的代码。
MapRender类:
在调用loadMap()函数的KeyListener和" render"之后,在循环中调用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;
}
}
在Main类中循环调用render
public static void main(String[] args) {
while(true)
{
try {
mapRender.render();
} catch (SlickException e1) {
e1.printStackTrace();
}
}
}
任何和所有帮助将不胜感激!
答案 0 :(得分:0)
您在主函数中编码的循环不允许Slick2D运行任何自己的代码以更新屏幕上的图像。因此,您的程序可能只是将地图反复渲染到一些不可见的缓冲区。
查看the "Hello World" example on the Slick2D wiki有关如何实施核心循环的信息,并在其render
方法中添加地图渲染调用。