将精灵节点添加到可变数组

时间:2015-05-07 05:51:46

标签: ios objective-c arrays sprite-kit

这让我觉得自己像个笨手笨脚的白痴,而我似乎就是这样问的。

我有一个类似桌面游戏的游戏,我在这里为每个空格添加空格(类型DDSpace,一个NSObject的子类)到一个可变数组(NSMutableArray )。

以下是到目前为止将空格加载到视图中的函数(loadSpaces):

NSLog(@"amount of spaces: %i", amountOfSpaces);

for (int i = 0; i < amountOfSpaces; i++) {
    DDSpace *space = [DDSpace new];
    [space setupSpriteWithTheme:gamePlace];
    [spacesArray addObject:space];
}

int num = 0;

// INITIAL SPACE IS SPACE 0.

NSLog(@"adding spaces to scene... self.width = %f, count of space array = %i", self.size.width, spacesArray.count);

for (DDSpace* space in spacesArray) {
    CGFloat x = 100.0 + (num * 225.0);
    NSLog(@"x at num%i = %f.", num, x);
    space.sprite.position = CGPointMake(x, (self.size.width / 3.0));
    space.sprite.name = [NSString stringWithFormat:@"space%ld",(long)num];

    if (space.sprite.position.x < self.size.width) {
        NSLog(@"adding space.");
        [self addChild:space.sprite];
    }
}

NSLog(@"loadSpaces function finished.");

第一个游戏加载1,000个空格。该函数首先记录空格量以确保正确设置(并且它是),然后记录屏幕的宽度和数组中的空格数(数组的计数为0),然后下面的所有内容只是将适合屏幕的内容添加到视图中。

我的目标是将空格添加到spacesArray数组(NSMutableArray),以便稍后我可以访问其他空格,以防角色“轮到他们”(我会那里的逻辑将其他人向后移动,但要做到这一点,我需要一个空格数组。)

我的问题是,如何将DDSpace添加到spacesArray数组中? addObject:方法是否正确?我只是做一些愚蠢的事情吗?

场景中也没有出现任何空格。

1 个答案:

答案 0 :(得分:2)

我认为在向对象添加对象之前需要这样做。

spaceArray = [NSMutableArray Array];

并添加这样的对象(就像你一样)

[spacesArray addObject:space];