2016-10-09 67 views
0

我正在測試在Java中使用Slick2D的TileD,但是當我嘗試導入地圖並渲染它時,渲染函數運行平穩,但地圖不顯示在我的屏幕上。我的玩家顯示,但不是地圖。我是新來的java,所以原諒我的雜亂的代碼。Java - Slick2D TileD地圖渲染但不顯示

渲染()函數被調用,調用loadMap()函數的KeyListener後一個循環,「渲染」打印到控制檯,但地圖從未顯示:

MapRender類。我怎麼能解決這個問題?

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(); 
     } 
    } 
} 

任何和所有幫助將不勝感激!

回答

0

您在主函數中編寫的循環不允許Slick2D運行自己的任何代碼以更新屏幕上的圖像。結果,你的程序可能只是將地圖反覆渲染到一些不可見的緩衝區中。

檢查出the "Hello World" example on the Slick2D wiki關於如何實現核心循環,並在其render方法中添加地圖呈現調用。

+1

非常感謝你,讓我朝着正確的方向移動到BasicGame渲染函數中, – Flizzet