昨日は土台の準備までなんとか出来た… ^^;
デバッグのための draow()メソッドの 4行ほどの記述の内容をいつも忘れてしまう… ^^;;
とりあえず、今日は動かすトコまでを目標にがんばる!
http://www.raywenderlich.com/28602/intro-to-box2d-with-cocos2d-2-x-tutorial-bouncing-balls
英語全く読めないけど、iPhoneを傾けて画面内のボールを跳ねさせる感じのものを作るみたいですね。
とりあえず、下準備は出来ているので、…これからはこんな感じでいいのかな… ^^;
- b2BodyDefを用意
- b2BodyDefを使ってb2Bodyを作成
- Shapeを用意
- Shapeを使ってb2BodyでFixtureを作成
body用のCCSpriteも用意しておくみたい。
HelloWorldScene.h
private:
cocos2d::CCSprite * _ball;
HelloWorldScene.cpp
const CCSize winSize = CCDirector::sharedDirector()->getWinSize();
const CCPoint center = ccpMult(ccpFromSize(winSize), 0.5f);
//CCSprite
{
CCSprite * sprite = CCSprite::create("ball.png");
sprite->setPosition(center);
this->addChild(sprite);
_ball = sprite;
}
よし。
次は body を…
b2Body * body;
{
b2BodyDef bodyDef;
{
bodyDef.type = b2_dynamicBody;
bodyDef.position.Set(center.x / PTM_RATIO, center.y / PTM_RATIO);
//CCSprite
bodyDef.userData = _ball;
}
body = _world->CreateBody(&bodyDef);
}
こんな感じ。
次は Fixture を作成。まず shapeプロパティのための形状を作成しておく感じ。
b2FixtureDef fixtureDef;
{
b2CircleShape shape;
shape.m_radius = (_ball->boundingBox().size.width * 0.5f) / PTM_RATIO;
fixtureDef.shape = &shape;
fixtureDef.density = 1.0f;
fixtureDef.friction = 0.2f;
fixtureDef.restitution = 0.8f;
}
body->CreateFixture(&fixtureDef);
ココまで来たらとりあえずエミュレーターで確認してみる。

今日も時間がなくなったのでココまで…
つづきはまた明日がんばろう ^^;