今回は 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);
}
}
}
}
…がんばろう… ^^;