我在游戏中产生12个精灵。每个精灵都需要有一个原始名称。我是通过使用for循环来做到这一点的。我已经将循环拆分以显示正在发生的事情。所以对于前几个指控:
for (int i = -4; i <= 0; i++)
{
NSLog(@"i = %i", i);
[self spawnChargesWithNumber:i];
}
NSLog告诉我,我是-4,-3,-2,-1,0。应该如此。这会调用方法spawnChargesWithNumber:i
,如下所示:
- (void)spawnChargesWithNumber:(int)number
{
NSLog(@"number is %i", number);
_chargedBall = [[ChargedBall alloc] initWithImageNamed:[NSString stringWithFormat:@"ChargedBall%i", number]];
//code to make a random position
_chargedBall.position = CGPointMake(actualX, random);
_chargedBall.name = [NSString stringWithFormat:@"chargeNumber%i", number];
_chargedBall.zPosition = 15;
_chargedBall.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:13.0f];
_chargedBall.physicsBody.dynamic = YES;
_chargedBall.physicsBody.affectedByGravity = NO;
_chargedBall.physicsBody.mass = 0.1;
_chargedBall.velocity = CGPointMake(actualVelocityX, 0.0);
_chargedBall.physicsBody.categoryBitMask = chargeCategory;
_chargedBall.physicsBody.contactTestBitMask = playerCategory;
_chargedBall.physicsBody.collisionBitMask = playerCategory | selfCategory;
[self.map addChild:_chargedBall];
NSLog(@"You made charge with name %@", _chargedBall.name);
if (!_enemies) {
_enemies = [[NSMutableArray alloc] init];
}
[_enemies addObject:_chargedBall];
NSLog(@"you added %@ to the array", _chargedBall.name);
}
我有一个名为ChargedBall
的对象。 NSLog
首先告诉我数字,它对应于上面的i
。然后它告诉我我充电(chargeNumberi)它遵循相同的模式。然后我将chargedBall
添加到数组中。在游戏过程中,如果我与其中任何一个发生碰撞,我的NSLog
didBeginContact
方法告诉我,我已经联系了正确的费用。一切都在按计划进行。
因为我实际上有12次收费而不是5次,所以我有另一个for
循环来向您展示。在另一个结束的地方起飞基本相同:
for (int i = 1; i <= 7; i++)
{
NSLog(@"i = %i", i);
[self spawnChargesWithNumber:i];
}
我原本确实有这些,但我想告诉你发生了什么。致电spawnChargesWithNumber:i
后,我收到了其他费用。但是,它们是相反的!我不明白。 NSLog
仍告诉我i
,您创建的chargeNumberi
号码,并将其添加到数组中。我甚至NSLog
图像的名称,它仍然对应。但chargeNumber7
显示图片1,chargeNumber6
显示图片2,chargeNumber 5
显示图片3,其中四个很好,因为要制作奇数个精灵,chargeNumber3
显示图片5 ,chargeNumber2
显示图片6,chargeNumber 7
显示图片1.所以整个事情都被翻转了。我检查了图片,他们都是正确的。这甚至发生在我将for
循环仅作为一个循环,正电荷被切换,但不是零到负4.有人知道为什么会发生这种情况吗?我NSLog
我能想到的一切,我甚至改变了图片名称,但没有任何效果。如果您需要更多来自我可以发布的其他地方的代码,我现在很困惑!
答案 0 :(得分:0)
问题已经解决了。我真的以为我错误地编程了我的for循环。然而,在fuzzygoat和prototypical的帮助下,我对所有内容进行了硬编码,并使用调试器发现所有内容都符合我的意图。因此,原型建议清理派生数据,因为我在导入Xcode后更改了图像名称。我认为清洁产品与删除衍生数据一样,但也许不是。所以感谢所有看起来并感谢所有帮助的人。你再次充满了知识!