当前位置:  开发笔记 > IOS > 正文

cocos2d精灵碰撞检测边界框

如何解决《cocos2d精灵碰撞检测边界框》经验,为你挑选了1个好方法。

我有2个精灵.我使用boundingbox检查与CGRectIntersectsRect的冲突.但它没有用.HBBall和HBpaddle有一个名为image的CCSprite.

在里面:

    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.有没有人有想法?



1> BQuadra..:

你不能直接传递边界框,因为它是相对于精灵.你必须像这样传递绝对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);

做出必要的调整!

希望能有所帮助!

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有