自動落下まではできた…
今日は userData に設定した CCSprite を Box2d に結びつけるトコロをやって行こうと思います。
update()の中で随時更新する感じですね。
void HelloWorld::update(float delta) { { float32 timeStep = (1.0f / 60.0f); int32 velocityIterations = 10; int32 positionIterations = 10; _world->Step(timeStep, velocityIterations, positionIterations); } //Box2dの情報をCCSpriteに反映 { for (b2Body * b = _world->GetBodyList(); b; b = b->GetNext()) { if (b->GetUserData()) { CCSprite * ball = (CCSprite *)b->GetUserData(); b2Vec2 b2Pos = b->GetPosition(); CCPoint pos = ccpMult(ccp(b2Pos.x, b2Pos.y), PTM_RATIO); ball->setPosition(pos); float32 radians = b->GetAngle(); float angle = -CC_RADIANS_TO_DEGREES(radians); ball->setRotation(angle); } } } }
for文の回し方がおもしろいなー。
シミュレーターで動かしてみたのがこんな感じ。

おー画像も動いたー。^^
今日は、最後に、デストラクタで後片付け。 ^^;
HelloWorld::~HelloWorld() { this->unscheduleUpdate(); CC_SAFE_DELETE(_debugDraw); CC_SAFE_DELETE(_world); }
static_body は明日… ^^;