我正在使用Sprite-kit创建一个小游戏,尝试存储在游戏中意味着敌人的对象时遇到了问题。我使用了与我的C ++程序相同的策略,但使用了Objective-C和指针策略行不通。

enemigo *nemesis = [[enemigo alloc] init];
self.almacenEnemigos = [[NSMutableArray alloc] initWithCapacity:kNumEnemigos];

for(int i = 0; i < kNumEnemigos; i++)
{
    [nemesis pintarEnemigo:CGPointMake(20+5*i, 20+5*i)];
    [self.almacenEnemigos addObject:nemesis];
}


我想创建四个敌人,但最后根据唯一的敌人,我只有四个相同的内存地址。 var almacenEnemigos是SKScene类中的类属性。

最佳答案

您仅在第一行中创建一个enemigo实例。您需要将实例的创建移入循环。

self.almacenEnemigos = [[NSMutableArray alloc] initWithCapacity:kNumEnemigos];

    for(int i = 0; i < kNumEnemigos; i++)
    {
        enemigo *nemesis = [[enemigo alloc] init];
        [nemesis pintarEnemigo:CGPointMake(20+5*i, 20+5*i)];
        [self.almacenEnemigos addObject:nemesis];
    }

关于ios - 将相同类的实例存储在NSMutableArray中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20820469/

10-10 20:37