我目前正致力于在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];
我想知道什么是明智的表现? 对不起,如果这是一个糟糕的问题。我是编程的新手,我似乎无法在其他任何地方找到它。 谢谢!
答案 0 :(得分:3)
与您真正不应该关心的图形渲染成本相比,这两种方法的性能成本非常小。你应该专注于编写清晰,健壮,可扩展的代码,而不是担心那里的性能。考虑到这一点,我建议:
1)使用Tile
课程。它允许您稍后向其添加tile_types
以上的内容。
2)使用new Tile[mapWidth][mapHeight]
,地址图块为tiles[x][y]
。这种方法需要花费更多的内存,而且你必须自己创建所有的子数组,但是它可以防止很多容易出错的错误和其他数学错误。