アンカーポイントの表示に関する以前の質問に続く質問として、CCSpriteをサブクラス化し、その描画メソッドを次のように変更しました。
[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];
スプライトは適切な位置にあり、アンカーポイントは適切な場所に描画されますが、バウンディングボックスは間違った場所に描画されます。私は何が間違っているのですか?