我正在努力解决问题NSMutableArrays
,需要一些帮助。
我正在尝试测试散落在关卡中的“玩家”和“硬币”的碰撞,就像传统的马里奥一样。
我收到一个崩溃报告' * Collection <__NSArrayM: 0x4bf6d0> 在被枚举时发生了变异。
我遵循了类似的精灵碰撞方法:http: //geekanddad.wordpress.com/2010/06/22/enemies-and-combat-how-to-make-a-tile-based-game-with-cocos2d -第 3 部分/
出于某种原因,如果只产生 1 个硬币,一切正常 - 但是如果产生 > 1 个硬币,任何硬币碰撞都会引发崩溃。
我知道这是一个菜鸟问题,与 [delete addObject:nuCoin] 相关;- 我环顾四周并阅读了制作一个子数组来处理删除功能 - 但是我显然迷路了,希望能得到帮助,在此先感谢!
-(void) coinCollision {
NSMutableArray *coinsToDelete = [[NSMutableArray alloc] init];
NSMutableArray *delete = [[NSMutableArray alloc] init];
for (CCSprite *nuCoin in _coins) {
CGRect coinRect = CGRectMake((nuCoin.position.x+1) - (nuCoin.contentSize.width/4),
(nuCoin.position.y+5) - (nuCoin.contentSize.height/4),
nuCoin.contentSize.width/3.5,
nuCoin.contentSize.height/7);
for (CCSprite *Player in _player) {
CGRect playerRect = CGRectMake(player.position.x - (player.contentSize.width/4),
player.position.y - (player.contentSize.height*.05),
player.contentSize.width*.05,
player.contentSize.height/2);
if (CGRectIntersectsRect(coinRect, playerRect)) {
[coinsToDelete addObject:nuCoin];}
}
for (CCSprite *nuCoin in coinsToDelete) {
[[SimpleAudioEngine sharedEngine] playEffect:@"Coin.mp3"];
[_coins removeObject:nuCoin];
[delete addObject:nuCoin];
[map removeChild:nuCoin cleanup:YES];
}
}
[delete release];
}