2009-02-26 186 views
1

我正在開發一個Windows Mobile的益智遊戲。目標是將圖像分成九部分並重新拼接以獲得原始圖像。這些分割圖像放在圖片框上,並且這些圖片框被重新分佈在3X3單元的矩陣中。c#矩陣pictureBox

用戶移動這些單元格將它們排列在正確的位置(這是一個益智遊戲!)。

我需要一些東西來訪問這些pictureBoxes並知道它們在矩陣中的位置。假設我需要更新第1行第2列的圖像(這只是一個例子)。在C++中我使用指向引用對象的指針,但我不知道如何用C#來完成。

有什麼建議嗎?

謝謝!

回答

3

剛使用包含對PictureBox的引用的對象創建矩陣。

MyObject[,] layout = new MyObject[3,3]; 

public class MyObject 
{ 
     #region attributes   
     private PictureBox pictureBox; 
     #endregion 

     public MyObject(PictureBox pictureBox) 
     { 
      this.pictureBox = pictureBox; 
     } 
} 
+0

我打算用這個。我可以這樣做: 用戶將單元格2,2上的pictureBox移動到單元格1,2。什麼更好? 答案a) PictureBox aux = objectB.pictureBox; objectB.pictureBox = objectA.pictureBox; objectA.pictureBox = aux; 解決方案B MyObject aux = objectB; objectB = objectA; objectA = aux; 或inter – VansFannel 2009-02-26 10:12:47

1
//This is a reference object 
MyCustomObject o1 = new MyCustomObject(imageUrl, row, col); 

因此,從我的例子中我創建了一個自定義對象,它包含圖像的URL以及行和列引用。

然後我就可以撥打電話:

int row = o1.Row; 
int col = o1.Col; 
string imageUrl = o1.ImageUrl; 

然後,您可以使用您所希望。

希望這有助於:

安德魯

1

一種可能的方式做到這一點是建立一個謎peice的類將舉行到圖像的引用,它的當前位置和它的目標位置。

public class PuzzlePeice 

{ 
public Bitmap Image {get; } 
puliic Point Position {get; set; } 
public Point TargetPosition {get; }; 


} 

然後假設peice的是上面的類的一個實例,移動peice的是這樣的:

peice.Postion = new Point(x,y); 

TargetPosition指示了peice的應是在基質內它以形成正確的圖像,這個值當然會來自任何數據源你得到的益智信息氟里昂,並可能在構造函數中設置

希望這有助於