我正在使用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/