

単純に下の方に動かない地面を置き、そこにポトッとボールを落とすだけのプログラムを作りました。

実行して、しばらく見てると、ボールがびくびく動き出したり、ピョンピョン飛び跳ねたり、時にはすごい速度で画面外へ飛んで行ってしまうことがあります。  
毎回そうなるわけではなく、何事もなくじっとしていることもあります（というか普通はじっとしてます）

重力の強さやマテリアルの設定を変えてみてもダメでした。  
何か気を付けることがあれば教えてください。

[code]

    Scene* TestScene::createScene()
    {
    auto scene = Scene::createWithPhysics();
    PhysicsWorld* world = scene->getPhysicsWorld();
    world->setGravity(Vec2(0, -500));
    world->setSpeed(1.0f);
    
    auto layer = TestScene::create();
    scene->addChild(layer);
    return scene;
    }
    
    bool TestScene::init()
    {
    if (!Layer::init())
    {
    return false;
    }
    
    //地面
    {
    auto ground = Sprite::create("images/ground.png");
    ground->setPosition(320, 16);
    auto pb = PhysicsBody::createBox(Size(640, 32));
    pb->setDynamic(false);
    pb->setRotationEnable(false);
    ground->setPhysicsBody(pb);
    this->addChild(ground);
    }
    
    //ボール
    {
    auto ball = Sprite::create("images/ball.png");
    ball->setPosition(300, 80);
    auto pb = PhysicsBody::createCircle(16);
    ball->setPhysicsBody(pb);
    this->addChild(ball);
    }
    return true;
    }
    
[/code]

cocos2D-Xのバージョンは3.8でVisualStudio2013を使っています。  
よろしくお願いいたします。


CC BY-SA 3.0
2016-03-04T03:53:28.307
22785
2016-03-04T04:25:02.827
2016-03-04T04:25:02.827
7837
14644
question
cocos2d-x
cocos2d-xで物理エンジンを使うとノードが飛んで行く・・・