你如何在基于2D的游戏中获得牌?

时间:2014-03-22 08:42:31

标签: java arrays object 2d

我目前正致力于在java中制作一款基于2d tile的游戏。 我的游戏现在的工作方式是:找出屏幕区域内的哪些图块,然后渲染这些图块。切片存储在int数组中,其中每个切片由数字表示。 例如,1是草地,2是泥瓦。 它使用getTile方法来确定特定坐标处的数字,然后根据该坐标处的数字返回tiletype,例如:

int[] tiles=new int[width*height];

if(tiles[x+y*width]==1) return grassTile;
else if(tiles[x+y*width==2]) return dirtTile;
else if..... and so on

但我想知道制作一个瓷砖对象数组会更有效吗?

Tile[] tiles=new Tile[mapWidth*mapHeight];

return tiles[x+y*width];

我想知道什么是明智的表现? 对不起,如果这是一个糟糕的问题。我是编程的新手,我似乎无法在其他任何地方找到它。 谢谢!

1 个答案:

答案 0 :(得分:3)

与您真正不应该关心的图形渲染成本相比,这两种方法的性能成本非常小。你应该专注于编写清晰,健壮,可扩展的代码,而不是担心那里的性能。考虑到这一点,我建议:

1)使用Tile课程。它允许您稍后向其添加tile_types以上的内容。

2)使用new Tile[mapWidth][mapHeight],地址图块为tiles[x][y]。这种方法需要花费更多的内存,而且你必须自己创建所有的子数组,但是它可以防止很多容易出错的错误和其他数学错误。