【发布时间】:2012-08-21 12:32:52
【问题描述】:
作为我之前关于displaying the anchor point 的问题的后续问题,我将CCSprite 子类化并更改了它的draw 方法,如下所示:
[super draw];
ccDrawColor4F(0, 1, 0, 1);
ccDrawCircle(self.anchorPointInPoints, 20, 0, 8, YES);
这很好用。为了获得额外的功劳,我添加了以下内容以显示其边界框:
CGRect bb = self.boundingBox;
CGPoint vertices[4] = {
[self convertToNodeSpace:ccp(bb.origin.x, bb.origin.y)],
[self convertToNodeSpace:ccp(bb.origin.x + bb.size.width, bb.origin.y)],
[self convertToNodeSpace:ccp(bb.origin.x + bb.size.width, bb.origin.y + bb.size.height)],
[self convertToNodeSpace:ccp(bb.origin.x, bb.origin.y + bb.size.height)],
};
ccDrawPoly(vertices, 4, YES);
这也很有效,直到我重新定义一个精灵:
CGPoint oldPosition = [sprite convertToWorldSpace:sprite.position];
[sprite removeFromParentAndCleanup:NO];
[parentSprite addChild:sprite];
sprite.position = [sprite convertToNodeSpace:oldPosition];
精灵现在在正确的位置,它的锚点绘制在它应该绘制的位置,但边界框绘制在错误的位置。我做错了什么?
【问题讨论】:
标签: cocos2d-iphone bounding-box