Вариант 1 - Класс
Если вы собираетесь добавлять, удалять и вставлять объекты, я бы использовал список списков, поскольку это даст вам прямой доступ к объекту с заданной координатой (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
с некоторыми значениями, такими как 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
Вы должны быть в состоянии развить это и взять его оттуда.