今回は CCSprite へ反映させるところを実装。
何回やっても忘れるなー … ^^;
init で ボールの body を作ったときの b2BodyDef に CCSprite を結びつける箇所は覚えた… ^^;
bodyDef.userData = sprite;
肝心は update で記述する for文 …。 まだまだ指が動かないなー… ^^;
for (b2Body * b = _world->GetBodyList(); b; b = b->GetNext())
update全体はこんな感じ…
void HelloWorld::update(float delta) { { float32 timeStep = (1.0f / 60.0f); int32 velocityIterations = 10; int32 positionIterations = 10; _world->Step(timeStep, velocityIterations, positionIterations); } { for (b2Body * b = _world->GetBodyList(); b; b = b->GetNext()) { if (b->GetUserData()) { CCSprite * sprite = (CCSprite *)b->GetUserData(); b2Vec2 vec = b->GetPosition(); CCPoint pos = ccpMult(ccp(vec.x, vec.y), PTM_RATIO); float rotation = - 1 * CC_RADIANS_TO_DEGREES(b->GetAngle()); sprite->setPosition(pos); sprite->setRotation(rotation); } } } }
…がんばろう… ^^;