cocos2d sprit обнаружение столкновений - PullRequest
1 голос
/ 28 апреля 2011

Я получил 2 спрайта.Я использую ограничивающую рамку для проверки на столкновение с CGRectIntersectsRect.Но это не работает.HBBall и HBpaddle имеют CCSprite с именем image.

Инициализация:

    ball = [[HBBall alloc] init];
    ball.position = ccp(150, 50);
    [self addChild:ball];
    [update addObject:ball];

    paddle1 = [[HBPaddle alloc] init];
    paddle1.position = ccp(50, 160);
    [self addChild:paddle1];

Обновление:

if (CGRectIntersectsRect([paddle1.image boundingBox], [ball.image boundingBox])) 
    CCLOG(@"ball hit paddle");

CGRectIntersectsRect повторяет всегда true.У кого-нибудь есть идея?

Ответы [ 2 ]

6 голосов
/ 29 апреля 2011

вы не можете пройти прямо через ограничивающий прямоугольник, потому что он относительно спрайта.Вы ДОЛЖНЫ передать абсолютную границу CGRect следующим образом:

s = CCsprite
s.anchorPoint = ccp(0, 0);    
CGRect absoluteBox = CGRectMake(s.position.x, s.position.y, [s boundingBox].size.width, [s boundingBox].size.height);

внести необходимые корректировки!

надежда может помочь!

0 голосов
/ 28 апреля 2011

http://www.iphonedevsdk.com/forum/iphone-sdk-game-development/17082-cocos2d-collision-detection-between-sprites.html? Вы гуглили? Похоже, что это будет довольно простой проблемой в рамках cocos2d.

...