Như một câu hỏi tiếp theo trên cho câu hỏi trước đây của tôi về displaying the anchor point, tôi subclassed CCSprite và thay đổi phương pháp bốc thăm như sau:Làm cách nào để hiển thị hộp giới hạn cho một CCNode trong cocos2d?
[super draw];
ccDrawColor4F(0, 1, 0, 1);
ccDrawCircle(self.anchorPointInPoints, 20, 0, 8, YES);
này hoạt động tuyệt vời. Đối với tín dụng thêm, tôi được thêm vào sau để hiển thị hộp bounding của nó:
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);
này cũng hoạt động tuyệt vời, cho đến khi tôi reparent một sprite:
CGPoint oldPosition = [sprite convertToWorldSpace:sprite.position];
[sprite removeFromParentAndCleanup:NO];
[parentSprite addChild:sprite];
sprite.position = [sprite convertToNodeSpace:oldPosition];
của sprite tại ở vị trí thích hợp và điểm neo của nó rút ra nơi cần, nhưng hộp giới hạn vẽ ở vị trí sai. Tôi đang làm gì sai?
Cảm ơn bạn! Rất khai ngộ. Tất cả đã được sửa. Tôi thực sự cần phải subclass CCSprite kể từ khi tôi muốn chọn lọc bật hộp bounding, nhưng vay mã từ CC_SPRITE_DEBUG_DRAW và vẽ poly hình thành bởi 'quad_.tl.vertices' đỉnh thực hiện chính xác những gì tôi cần. – mobopro