0

b2body に ccsprite を配置するのに問題があります。

box2d本体にccspriteを揃えたい。現在、それらの間にギャップがあります。私はそのギャップを望んでいません。

体にフィクスチャを取得するために、Andreas Loew による GB2ShapeCache を使用しています。

ここに画像の説明を入力

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);
4

1 に答える 1

1

スプライト画像の 4 辺すべてに末尾のスペースがあったという解決策を見つけました。それを削除して、物理エディタを使用してポリゴンを再構築すると、問題は解決しました。コードは問題なく正常に動作しています問題は画像にありました

于 2013-06-29T06:44:59.083 に答える