如何通过名称对象的属性来引用它们

本文关键字:引用 属性 何通过 对象 | 更新日期: 2023-09-27 18:27:38

如何引用无名称对象?对于一个游戏,如果我正在制作一个正方形网格并使用类似的东西

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

我将有100个没有名字的细胞。之后我该如何修改或检查它们,也许可以用它们的coords来指代它们,比如

ThisCell.DoSomething();

通过其坐标或来指代细胞

暂停。我不能只拥有1000个或更多的细胞,每个细胞都有自己的小宠物名字。例如,必须有一种方法可以在不产生新细胞的情况下,通过某种东西的咕咕声来检查它的邻居。。。

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

例如,如果你们中的任何一个人可以给我一个好的函数,它检查其上行邻居的boolean IsWalkable。。。我将非常感谢

如何通过名称对象的属性来引用它们

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

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

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

从那里,您可以随时引用任何单元格:myCells[1,2].DoSomething()

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

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

例如。