Cocos2d iphone 从NSMutableArray读取精灵以检测碰撞
我正在向NSMutableArray添加精灵,如下所示:Cocos2d iphone 从NSMutableArray读取精灵以检测碰撞,cocos2d-iphone,collision,Cocos2d Iphone,Collision,我正在向NSMutableArray添加精灵,如下所示: NSMutableArray * movableSprites; NSString *image = [images objectAtIndex:3]; CCSprite *sprite = [CCSprite spriteWithFile:image]; sprite.position = ccp(AREA_A2_X2 - (i * 56), AREA_A3A5A4_Y)
NSMutableArray * movableSprites;
NSString *image = [images objectAtIndex:3];
CCSprite *sprite = [CCSprite spriteWithFile:image];
sprite.position = ccp(AREA_A2_X2 - (i * 56), AREA_A3A5A4_Y);
[self addChild:sprite];
[movableSprites addObject:sprite];
到目前为止还不错
现在我试图检测它们之间的碰撞。用户可以移动精灵,但我希望精灵被彼此阻挡
所以,当我在翻译它们的时候,我希望它发生在那里。顺便问一下,这是进行碰撞检测的最佳地点吗
- (void)panForTranslation:(CGPoint)translation {
if (selSprite) {
我打算在循环中执行以下操作:
CGRect rect1 = [SpriteUtilities positionRect:selSprite];
CGRect rect2 = [SpriteUtilities positionRect:EVERY_OTHER_SPRITE];
if (!CGRectIsNull(CGRectIntersection(rect1, rect2))) {
//handle collision
}
问题是。。。我没有找到NSMutableArray方法来检索sprite对象
谢谢你的帮助。好的。。。在读了几遍之后,我了解到:
CCSprite *toCollide;
for (int i = 0; i < [movableSprites count]; i++){
toCollide = [movableSprites objectAtIndex:i];
...
CCSprite*toCollide;
对于(int i=0;i<[movableSprites count];i++){
toCollide=[movableSpites objectAtIndex:i];
...
无论如何,谢谢!!希望它能帮助其他人!如果你使用问题的代码,接下来你会想知道为什么数组是空的!你没有创建数组对象,比如moveableSprites=[[NSMutableArray]retain];(retain如果你不使用ARC,别忘了在dealloc中释放)。