前回の準備で、とりあえずボールが跳ねて元の位置に戻るところまで準備…
今日は… 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);
}
ボールも跳ね返ってきたところで今日はココまで ^^;