前回の準備で、とりあえずボールが跳ねて元の位置に戻るところまで準備…
今日は… ApplyLinearImpulse を試してみよう。
Ball の b2Bodyオブジェクトの ApplyLinerImpulse を呼び出してみる…こんな感じかな ^^;
{ b2BodyDef bodyDef; bodyDef.type = b2_dynamicBody; bodyDef.userData = sprite; bodyDef.position.Set(pos.x / PTM_RATIO, pos.y / PTM_RATIO); body = _world->CreateBody(&bodyDef); //TEST { b2Vec2 force = b2Vec2(10, 10); body->ApplyLinearImpulse(force, bodyDef.position); } }
試してみるか…あれ!?
ボールが枠の外へ…コードを見直してみると…あー 枠のエッジ作成時に pixel->m変換 してない ^^;
以下のように修正 ^^;
if (_groundBody) { b2EdgeShape shape; b2FixtureDef fixtureDef; fixtureDef.shape = &shape; shape.Set(b2Vec2(0.0f, 0.0f), b2Vec2(visibleSize.width / PTM_RATIO, 0.0f)); _bottomFixture = _groundBody->CreateFixture(&fixtureDef); shape.Set(b2Vec2(0.0f, 0.0f), b2Vec2(0.0f, visibleSize.height / PTM_RATIO)); _groundBody->CreateFixture(&fixtureDef); shape.Set(b2Vec2(visibleSize.width / PTM_RATIO, visibleSize.height / PTM_RATIO), b2Vec2(0.0f, visibleSize.height)); _groundBody->CreateFixture(&fixtureDef); shape.Set(b2Vec2(visibleSize.width / PTM_RATIO, visibleSize.height / PTM_RATIO), b2Vec2(visibleSize.width / PTM_RATIO, 0.0f)); _groundBody->CreateFixture(&fixtureDef); }
ボールも跳ね返ってきたところで今日はココまで ^^;