Box2d をやってみる… チュートリアル2 (4) Adding the Paddle

よし、加速してやっていくぞ!! (のつもりで… ^^;)

ふむふむ… 多分、自分の操作するバー?を置くんだなー (多分^^;

b2Body *_paddleBody;
b2Fixture *_paddleFixture;

b2Fixture の変数はどう扱うんだろう…?という疑問はとりあえず置いておいてw ^^;

次は init で b2Body を置いて…

    //Paddle
    {
        CCSprite * sprite = NULL;
        {
            CCPoint pos = ccp(center.x, 50.0f);

            sprite = CCSprite::create("paddle.png");
            sprite->setPosition(pos);

            this->addChild(sprite);
        }

        {
            b2Vec2 vecPos;
            {
                CCPoint pos = sprite->getPosition();
                pos = ccpMult(pos, 1.0f/PTM_RATIO);

                vecPos = b2Vec2(pos.x, pos.y);
            }

            b2BodyDef bodyDef;
            bodyDef.type = b2_dynamicBody;
            bodyDef.userData = sprite;
            bodyDef.position.Set(vecPos.x, vecPos.y);

            _paddleBody = _world->CreateBody(&bodyDef);
        }

        if (_paddleBody)
        {
            b2PolygonShape shape;
            {
                CCSize size = sprite->boundingBox().size;
                //半径を指定
                size = CCSizeMake(size.width / PTM_RATIO * 0.5f, size.height / PTM_RATIO * 0.5f);

                shape.SetAsBox(size.width, size.height);
            }

            b2FixtureDef fixtureDef;
            fixtureDef.shape = &shape;
            fixtureDef.density = 10.0f;
            fixtureDef.friction = 0.4f;
            fixtureDef.restitution = 0.1f;

            _paddleFixture = _paddleBody->CreateFixture(&fixtureDef);
        }
    }

 

よし、シミュレータ実行。成功w ^^

Adding the Paddle


Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です