我有两个精灵:一个字符精灵,另一个是障碍精灵。障碍精灵是另一个精灵,称为bgSprite的小孩,它正在不断移动。我如何检测它们之间的碰撞。请帮帮我。在此先感谢
下面是一些代码:如何检测两个精灵之间的碰撞
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"BoyRunAnimation.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"BoyRunAnimation.png"];
[self addChild:spriteSheet];
self._character = [CCSprite spriteWithSpriteFrameName:@"Boy_Run_0003.png"];
self._character.position = ccp(80, 150);
[spriteSheet addChild:self._character];
[self boyRunningAnimation];
//障碍
for (int i=0; i<5; i++)
{
int xPos=500+500*i;
if (xPos<2*_roadImage1.contentSize.width)
{
CCSprite *obstacle=[CCSprite node];
obstacle.textureRect=CGRectMake(0, 0, 50, _roadImage1.contentSize.height);
obstacle.color=ccc3(255, 255,255);
if (xPos <= _roadImage1.contentSize.width)
{
obstacle.position=ccp(xPos, _roadImage1.contentSize.height/2);
[_roadImage1 addChild:obstacle z:0 tag:1];
}
else
{
obstacle.position=ccp(xPos-_roadImage1.contentSize.width, 60);
[_roadImage2 addChild:obstacle z:0 tag:2];
}
[obstacleArray addObject:obstacle];
}
}
,并在更新:
if (CGRectIntersectsRect(self._character.boundingBox, obstacle.boundingBox))
{
isTouchActive=NO;
NSLog(@"collision");
}
使用CGRectIntersectRect([characterSprite textrureRect],[obstacleSprite textureRect]); – Renaissance
它不能在正确的位置工作 – Nidhi
你能为你的问题添加一些代码吗? – Renaissance