2011-09-06 2 views
1

다차원 배열에 요소를 저장해야합니다. 구체적으로 그리드 (예 : Grass at x : 2 y : 5, Dirt at x : 3 y : 5 등)에 "타일"을 저장해야합니다. 다차원을 사용하는 것은 매우 해킹 된 느낌이 들며 매우 이상합니다 (배열의 크기를 조정해야하고 새로운 배열을 만들지 않아도 존재하지 않습니다). 거기에 어떤 종류의 요소가 있습니까? 내가 obj.getPos (2,5)를 호출하고 내 잔디 요소를 가져와 obj.setPos (DirtObj, 3, 5)를 사용하여 내 먼지 요소로 설정할 수 있습니까?VB.net에서 모눈에 대한 변수 만들기

vb.net에서 다차원 배열보다 사용하기 쉬운 것이 있는지 궁금합니다. 그게 전부입니다. 감사!

답변

1

옵션 1 - 좌표이 당신에게 주어진에있는 객체에 직접 액세스를 제공하기 때문에 클래스 당신은 제거하고 객체를 삽입, 추가 할 거라면

, 나는리스트의 목록을 사용합니다 (X, Y)를 사용하고 개체의 크기를 조정하지 않고 개체를 직접 설정할 수 있습니다. 열거

모든 경우에는 개체에 대한을 사용하고 - 2

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 



옵션 :

예를 들어, Tile 클래스를 가지고 있고 이런 목록을 사용할 수 있습니다 그들의 가치는 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 

당신은 이것을 기반으로 구축 할 수 있어야합니다.

+0

감사합니다. 이것은 절대적으로 훌륭합니다! – FreeSnow

관련 문제