2013-12-09 38 views
0

我无法渲染2d块状地图。
这里如何2D地图阵列创建的:渲染2D块状地图 - LibGDX

map = new Block[w * h]; 

块类包含2个变量 - 大小(H:100像素,宽:100像素),以及图像纹理。

好的,那么我应该如何渲染它? 我的意思是说让玩家走在地图上,我应该如何让地图移动/滚动效果。

我试图循环遍历地图并渲染它,但没有任何运气。因为我需要以某种方式切割块时,我渲染它,我没有任何想法如何做到这一点。
我真的需要帮助,这将非常感激!

回答

1

此:

map = new Block[w * h]; 

应该是一个二维数组:

map = new Block[w][h]; 

还是我误解?

  • 好的,那么我该如何渲染它呢?
    如果每块有一个图像纹理,然后就是不断的循环,这样的事情:

    for(int i=0; i<w; i++){ 
        for(int j=0; j<h; j++){ 
         Block b = map[i][j]; 
         spritebatcher.draw(b.texture, i*b.W, j*b.H); 
        } 
    } 
    
  • 我应该怎么使地图移动/滚动效果?
    从技术上讲,地图不会滚动。你移动你的播放器,相机将跟随他/她。

    camera.position.set(player.position.x, player.position.y, 0); 
    
  • 我需要以某种方式当我呈现它和我没有任何想法如何做到这一点裁块。
    恐怕我不明白这个问题。

+0

非常感谢..但是等等,我不知道你在libGDX有相机的东西..让我检查一下。非常感谢朋友! – Israelg99

+0

关于数组..为了表现,我做了一维数组。它的工作方式就像'map [y * width + x]'。 – Israelg99

+1

1D阵列在性能方面提供了轻微的增益,并且通常会导致头痛。但是,如果你愿意,可以使用它们! – 2013-12-15 02:28:14