【问题标题】:How do you go about getting tiles in a 2d tilebased game?您如何在基于 2d 瓷砖的游戏中获得瓷砖?
【发布时间】:2014-03-22 08:42:31
【问题描述】:

我目前正在用 java 制作一个 2d tilebased 游戏。 我的游戏现在的工作方式是:找出屏幕区域内的图块,然后渲染它们。瓦片存储在一个 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];

我想知道最好的性能是什么? 对不起,如果这是一个不好的问题。我是编程新手,似乎在其他任何地方都找不到。 谢谢!

【问题讨论】:

    标签: java arrays object 2d


    【解决方案1】:

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

    1) 使用Tile 类。它允许您稍后向他们添加更多的 tile_types

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多