我正在为Windows mobile开发一款益智游戏。目标是将图像分成九个部分并将它们重新组合以获得原始图像。这些分割图像放在pictureBoxes上,这些pictureBoxs以3X3单元格的矩阵重新分配。
用户移动此单元格以将它们排列在正确的位置(这是一个益智游戏!)。
我需要一些东西来访问这些pictureBox并知道它们在矩阵中的位置。假设我需要更新第1行第2列的图像(这只是一个例子)。
在C ++中我使用指针来引用对象,但我不知道如何使用C#。
有什么建议吗?
谢谢!
答案 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应该在矩阵中的哪个位置,以便形成正确的图像,这个值当然来自您获得拼图信息的任何数据源,并且可以在构造函数中设置
希望这有帮助