2013-06-24 1 views
0

У меня возникли проблемы с позиционированием ccsprite на b2body.CCSprite не расположен на вершине b2body

Я хочу выровнять ccsprite на корпусе box2d. Сейчас у него есть промежуток между ними, я не хочу этого разрыва.

Я использую GB2ShapeCache от Andreas Loew для получения светильников на теле.

enter image description here

PTM_RATIO = 32

Вот мой код:

string stageName="Stage1"; 

CCSize s = CCDirector::sharedDirector()->getWinSize(); 
CCPoint center=ccp((s.width/2),(s.height/2)); 

CCSprite *sprite = new CCSprite(); 
sprite->initWithFile("Stage1.png"); 
sprite->setAnchorPoint(CCPoint(0.50, 0.5)); 
sprite->setPosition(center); 
this->addChild(sprite); 

// Define the dynamic body. 
//Set up a 1m squared box in the physics world 
b2BodyDef bodyDef; 
bodyDef.type = b2_dynamicBody; 
bodyDef.userData=sprite; 
bodyDef.position.Set(center.x/PTM_RATIO,center.y/PTM_RATIO); 
//bodyDef.position=b2Vec2(10, 10); 

b2Body *body = world->CreateBody(&bodyDef); 

//adding fixtudre to body 
GB2ShapeCache::sharedGB2ShapeCache()->addFixturesToBody(body, "Stage1"); 

//weld joint at center 
b2WeldJointDef *weldJoint= new b2WeldJointDef(); 
weldJoint->Initialize(groundBody, body, b2Vec2(center.x/PTM_RATIO,center.y/PTM_RATIO)); 
world->CreateJoint(weldJoint); 
+0

Очень слабый вопрос. Опишите, что проблема и что вы ожидаете в результате вместо этого. –

+0

@ SebastianÄrleryd Сэр, я изменил свой вопрос, и я был бы признателен, если бы я спросил, какая дополнительная информация вам нужна. –

+0

Прошу прощения, но у меня нет опыта использования Box2D. Я прокомментировал, чтобы указать вам, что вы, вероятно, должны улучшить свой вопрос, чтобы получить ответ. Извините, если я прозвучал грубо. Что вы пытались решить до сих пор? Кажется, что центр CCSprite и центр тела смещены относительно (x, y) = (10,15) пикселей. –

ответ

1

Я нахожу решение, что мой спрайт изображение, имеющее завершающие пробелы на всех 4-х сторон. Как только я удалил его и снова построил многоугольник, используя физический редактор, моя проблема была решена. Код отлично работает нормально Проблема была с изображением