我是ios中Cocos2d开发的新手。我想在我的两个精灵knight
和coins
之间实现碰撞。所以对于我的coins
精灵,我尝试了类似下面的内容:
- (void)coinSidewaysRowOne {
self.visible = YES;
if (coinSide1 == FALSE)
{
coinSide1 = TRUE;
NSLog(@"coinSide1 = TRUE");
NSInteger originalX = 150;
for(int i = 0; i < 8; i++)
{
CCSprite *coinHorizontal = [CCSprite spriteWithFile:@"bubble.png"];
coinHorizontal.position = ccp(originalX, 150);
originalX += 20;
[self addChild:coinHorizontal];
[self.coinArray addObject:coinHorizontal];
}
}
}
并将其放入我的更新方法
[self coinSidewaysRowOne];
然后我在NSMutableArray
方法中创建了.h
属性:
@property (nonatomic, assign) NSMutableArray *coinArray;
如您所见,我在[self.coinArray addObject:coinHorizontal];
方法
coinSidewaysRowOne
如何将其写入我的阵列并检测骑士和硬币精灵之间的碰撞。
我期待这样的事情:
(void)coinGotCollected {
coin.visible = FALSE;
coin.position = ccp(-MAX_INT, 0);
[Store addInAppCurrency:coinValue];
}
非常感谢任何帮助。谢谢。
答案 0 :(得分:4)
在update
方法中:
for (CCSprite *coin in self.coinArray)
{
if (CGRectIntersectsRect(knight.boundingBox, coin.boundingBox))
{
[self processCollision];//do what you need when a collision is detected
break;
}
}
答案 1 :(得分:1)
为了检测精灵之间的碰撞检测,您可以使用函数 CGRectIntersectsRect 来检查精灵之间是否存在碰撞。
您可以参考此链接。http://www.raywenderlich.com/25736/how-to-make-a-simple-iphone-game-with-cocos2d-2-x-tutorial
参考此链接,您可以了解应该如何实现精灵之间的碰撞