我总是遇到课程问题,而且我不确定这是否可行。
我正在尝试创建一个具有可识别名称的类。 我意识到这一点并不清楚,但我的总体目标是创建一个类似网格的游戏,并且网格中的每个方格都将成为该类中的一员。
例如,我会有一个名为square的类,并在我的代码中说出
square(16,47).isdead = true;
基本上,我想知道是否可以创建一个可以区分至少一百个不同方块的类。
另外,不确定这是否重要,但我使用精灵套件。
答案 0 :(得分:1)
有几种方法可以做你想要的,我更喜欢以下方法。
C风格的二维数组:
Square * squares[10][10];
然后使用方法将其封装在名为SquareManager的类中:
-(Square*) aSquareManager squareX:(short)x Y:(short)y;
如果您特别想要问题中描述的访问模式,您可以使用(信用转到arturgrigor):
#define square(x, y) [aSquareManager squareX:x Y:y]
然后您可以通过这种方式访问所有广场:
if ([aSquareManager squareX:16 Y:47].isdead==true) [self showSkullForSquare:[aSquareManager squareX:16 Y:47]];
另一种方法是方形具有x和y属性:
Square.h
@property short y;
@property short x;
然后你将它们全部放入一个数组中,当你需要一个正方形时,你会搜索数组。
for(Square * aSquare in squares) {
if(aSquare.x==anXValue && aSquare.y==anYValue) {
return aSquare;
}
}
这些功能比你想象的要快得多。