c #BoxBox矩阵

时间:2009-02-26 09:22:31

标签: c# windows-mobile pointers

我正在为Windows mobile开发一款益智游戏。目标是将图像分成九个部分并将它们重新组合以获得原始图像。这些分割图像放在pictureBoxes上,这些pictureBoxs以3X3单元格的矩阵重新分配。

用户移动此单元格以将它们排列在正确的位置(这是一个益智游戏!)。

我需要一些东西来访问这些pictureBox并知道它们在矩阵中的位置。假设我需要更新第1行第2列的图像(这只是一个例子)。

在C ++中我使用指针来引用对象,但我不知道如何使用C#。

有什么建议吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

只需使用包含对PictureBox的引用的对象创建矩阵。

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

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

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

答案 1 :(得分: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;

然后您可以按照自己的意愿使用。

希望这会有所帮助:

安德鲁

答案 2 :(得分: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应该在矩阵中的哪个位置,以便形成正确的图像,这个值当然来自您获得拼图信息的任何数据源,并且可以在构造函数中设置

希望这有帮助