Спрайт и привязанные точки привязки физического тела отличаются

Когда я репетировал физику Cocos2d V3 с включенным режимом отладки, я заметил, что физическое тело, прикрепленное к его спрайту, имеет точку привязки, отличную от точки самого спрайта. Вот как это выглядит:

И вот как я создаю спрайт с физическим телом:

CCSprite *beam=[CCSprite spriteWithSpriteFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"w272.png"]];
beam.physicsBody=[CCPhysicsBody bodyWithRect:beam.boundingBox cornerRadius:0];
beam.position=ccp(125, 160);
[physicsWorld addChild:beam];

У вас есть идеи, как это исправить? Я нигде не ставлю точку привязки.

1 ответ

Решение

Физические объекты автоматически рассчитывают центр тяжести, который немного отличается от точки привязки. Ваша настоящая проблема заключается в том, что вы используете ограничивающую рамку спрайта в качестве прямоугольника для создания тела, и это выражается в локальных координатах. Вы хотите сделать текст, который идет от (0,0) до размера контента.

Другие вопросы по тегам