您好我有一个循环将怪物添加到NSMutableArray
- (void)addMonster:(CCTime)dt {
_monster1 = [[Monster1 alloc] init];
for(int i=0;i<=num; i++)
{
[spriteArray insertObject:_monster1 atIndex:num];
}
[_physicsWorld addChild:_monster1];
num++;
}
在我的更新循环中,此代码用于检查每个精灵是否已通过某个点:
for (int i=0; i <= num; i++)
{
CCSprite *tempSprite = (CCSprite *) [spriteArray objectAtIndex:i];
if (tempSprite.position.x > 100) {
structurelife--;
}
}
然而,这段代码不起作用(根据有多少怪物通过这一点来减少int结构寿命,我非常困难,所以任何帮助都会受到赞赏)。 Sprite的位置保持在0,0,即使它正在屏幕上移动。
答案 0 :(得分:0)
根据您的OP尝试执行的操作并根据您编写的代码,您的代码不正确。你声明你正试图添加&#34;怪物&#34;到一个数组,但你正在做的是一遍又一遍地向同一个怪物添加指针。
你的循环基本上是多次向它添加相同的怪物,而不是向阵列添加不同的怪物。这是否是您的代码的唯一问题无法通过发布的少量数量来确定,但启动您的方法应该基于您似乎尝试做的事情看起来像这样:
- (void)addMonster:(CCTime)dt
{
for (int i=0; i<=num; i++)
{
Monster1 monster = [[Monster1 alloc] init];
[spriteArray insertObject:monster atIndex:num];
[_physicsWorld addChild:monster];
}
num++;
}
但这又是基于您发布的代码。
我希望这会有所帮助。