在VB.net中为网格创建变量



我需要在多维数组中存储元素。具体来说,我需要将"贴图"保存到一个网格中(例如:草在x:2 y:5,土在x:3 y:5,等等)。使用多维感觉非常糟糕,而且非常容易出错(必须调整数组的大小,并且必须创建不存在的新数组)。有什么元素是为这个而生的吗?我可以说obj。getpos(2,5)然后得到我的Grass元素并使用obj。setPos(DirtObj, 3,5)将其设置为我的污垢元素?

我只是想知道是否有比vb.net中的多维数组更容易使用的东西,这就是全部。谢谢!

选项1 -类

如果你要添加,删除和插入对象,我会使用List of Lists,因为这将使你直接访问给定坐标(X, Y)的对象,并允许你直接设置对象而不必重新调整它们的大小。

例如,您可以有一个Tile类,并像这样使用列表:

Dim level As New List(Of List(Of Tile))
' load your level into the lists here!
level(2)(5) ' returns the Tile object at coordinate (2, 5) from above
level(3)(5) = New Tile(TileTypes.Dirt) ' sets a dirt tile at coordinate (3, 5) from above TileTypes would be a simple enum



选项2 - Enum

如果所有你使用的对象是他们的值,你甚至不需要创建一个Tile类,相反,你可以创建一个TileTypes enum与一些值,如Dirt, Grass等,并设置它们:

Public Enum TileTypes
    Dirt
    Grass
    'etc
End Enum
Dim level As New List(Of List(Of TileTypes))
' load your level into the lists here!
level(2)(5) ' returns the TileTypes value stored at coordinate (2, 5) from above
level(3)(5) = TileTypes.Dirt ' sets a dirt tile at coordinate (3, 5) from above

你应该能够建立在这个基础上,并从那里开始。

相关内容

  • 没有找到相关文章