我正在使用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类中的类属性。
答案 0 :(得分:2)
你只在第一行创建了一个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];
}