2012-12-13 79 views
0

我正在嘗試將遊戲關卡的單元格位置映射到2D數組。我想這樣做,這樣我就可以讓每個地面細胞(而不是背景細胞)與我的玩家角色相撞。這個二維數組初始化代碼有什麼問題?

下面是當前的代碼,有人爲我創造:

 int tileSize = 20; 
     int screenSizeInTiles = 30; 

     // initializing multidimensional array of points 
     var tilePositions = new System.Drawing.Point[screenSizeInTiles, screenSizeInTiles]; 

     for (int x = 0; x < screenSizeInTiles; x++) 
     { 
      for (int y = 0; y < screenSizeInTiles; y++) 
      { 
       tilePositions[x, y] = new System.Drawing.Point(x * tileSize, y * tileSize); 

      } 
     } 

它可以在這裏找到:How can I use a jagged array to record the x and y axes of these tiles? 用的什麼,我試圖做一個更好的描述。

所以,當我運行這段代碼時,我在tilePositions中得到了一個空數組。那麼,x和y值就在那裏,但值都是0.這些值應該是單元格的位置數據。

這裏是什麼tilesPosition陣列的樣子:

http://imgur.com/VYyxp

我仍然在碰撞代碼的工作,但...我需要這個工作之前,我可以計算的那部分。

非常感謝大家,非常感謝您的幫助!我仍然是一個初學者,但我正在全天候工作,使自己成爲一個更好的程序員。

+5

有什麼問題嗎?你的標題說「有什麼問題」,但你沒有包括任何不起作用的細節。 – ChrisF

+0

它沒有鋸齒。有沒有具體的問題? – Jodrell

+0

請檢查我包括的鏈接。抱歉,我需要睡眠...讓我編輯我的問題。 –

回答

0

,如果你沒有

 int tileSize = 20; 
     int screenSizeInTiles = 30; 

     // initializing jagged array of points 
     var tilePositions = new Point[screenSizeInTiles][screenSizeInTiles]; 

     for (int x = 0; x < screenSizeInTiles; x++) 
     { 
      for (int y = 0; y < screenSizeInTiles; y++) 
      { 
       tilePositions[x][y] = new Point(x * tileSize, y * tileSize); 
      } 
     } 

這將是鋸齒(數組的數組)。

+0

我們在另一個問題中發現,2D數組是我需要的,而不是鋸齒狀的數組。問題是誤導。 –