Debug Draw mask Все не работает в cocos2d-JS BOX2D, - PullRequest
0 голосов
/ 25 апреля 2018

Я перепробовал весь приведенный ниже код, но ничего из этого не работает

    this._debugNode = new cc.PhysicsDebugNode(this.physicsWorld);
    this._debugNode.visible = true;
    this.addChild(this._debugNode, 10)

Получение сбоя при использовании этого:

    var debugNode = new cc.PhysicsDebugNode(this.physicsWorld);
    debugNode.visible = true;
    this.addChild(debugNode);

Я тоже пробовал это, но он также не дает никакого вывода.

    var debugDraw = new b2DebugDraw();
    debugDraw.SetSprite(cc.renderContext);
    debugDraw.SetDrawScale(32);
    debugDraw.SetFillAlpha(0.8);
    debugDraw.SetFlags(b2DebugDraw.e_shapeBit);
    this.physicsWorld.SetDebugDraw(debugDraw);

1 Ответ

0 голосов
/ 25 апреля 2018
  1. Я бы решил вышеупомянутый вопрос, вставив этот код в метод обновления.

        var debugDraw = new Box2D.Dynamics.b2DebugDraw();
        debugDraw.SetSprite(document.getElementById("debugCanvas").getContext("2d"));
        cc.log( "this.m_ctx "+  document.getElementById("debugCanvas").getContext("2d"));
        debugDraw.SetDrawScale(30.0);
        debugDraw.SetFillAlpha(1.3);
        debugDraw.SetLineThickness(0.5);
        debugDraw.SetFlags(Box2D.Dynamics.b2DebugDraw.e_shapeBit | Box2D.Dynamics.b2DebugDraw.e_jointBit);
        this.physicsWorld.SetDebugDraw(debugDraw);
        this.physicsWorld.DrawDebugData();
    
  2. Вставьте этот код в index.html

      <canvas id="debugCanvas" width="1200" height="600" style="border:5px solid #FF0000;"></canvas>
      <script type="text/javascript">
     var debugCanvas = document.getElementById("debugCanvas");
     debugCanvas.width = 1200;
     debugCanvas.height = 600;
     debugCanvas.style.left = "50px";
     debugCanvas.style.top = "0px";
     debugCanvas.style.position = "absolute";
    </script>
    
...