如何通过属性引用无名对象?

时间:2014-10-22 16:32:36

标签: c# variables object

如何引用无名对象? 对于游戏,如果我制作方格并使用

之类的东西
for (int X =0; X <= 10; X++)
{
    for(int Y =0; Y <= 10; Y++)
    {
        new Cell(X, Y);
    }
}

我将拥有100个没有名字的单元格。我如何在之后修改或检查它们,也许是通过它们的坐标引用它们,例如

ThisCell.DoSomething();

通过其坐标或其他东西来指代细胞

HALP。我不能只有1000个或更多的细胞,每个细胞都有自己的小宠物名称可供使用。例如,必须通过一些东西检查某些东西的邻居,而不用制作新的细胞...

基本上我遇到的问题是,对于每个邻居检查,例如,我创建了返回错误值的新默认单元格。

例如,如果你们中的任何人能够给我一个很好的功能来检查其向上邻居的boolean IsWalkable ......我将非常感激

2 个答案:

答案 0 :(得分:2)

您需要创建类型为Cell的数组:

Cell[,] myCells = new Cell[10,10]

new Cell(X, Y);更改为myCells[X,Y] = new Cell();

从那里你可以随时参考任何细胞: myCells[1,2].DoSomething();

答案 1 :(得分:1)

创建一个数组,然后将单元格存储在其中

Cell[,] cells = new Cell[10,10];
for (int X =0; X <= 10; X++)
{
    for(int Y =0; Y <= 10; Y++)
    {
        cells[X,Y] = new Cell(X, Y);
    }
}

要延迟检索单元格,只需使用它的x和y坐标来索引数组:

Cell someCell = cells[5,5];   // for example

通过操纵坐标很容易找到邻居。例如,如果每个单元格也有自己的X和Y坐标(构造函数参数建议),您可以执行以下操作:

Cell cellAboveMe = cells[someCell.X, someCell.Y - 1]; 

虽然请注意您要包含边界检查(如果Y==0,则此单元格上方没有单元格)

这是非常基本的东西,因此您需要了解数组的工作原理。见这里:

http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

例如。