【问题标题】:How to create chipmunk debug layer with Cocos2d-JS v3?如何使用 Cocos2d-JS v3 创建花栗鼠调试层?
【发布时间】:2014-10-14 10:29:16
【问题描述】:

如何使用 Cocos2d-JS v3 创建花栗鼠调试层? 我找不到如何做的例子。

【问题讨论】:

    标签: cocos2d-x cocos2d-x-3.0 chipmunk cocos2d-js cocos2d-html5


    【解决方案1】:

    假设您已在项目project.json 中将"chipmunk" 添加到"modules",只需将以下内容放在其中定义了Chipmunk 空间的Layerctorinit 方法中:

    //Add the Chipmunk Physics space
    var space = new cp.Space();
    space.gravity = cp.v(0, -10);
    
    //Add the Debug Layer:
    var debugNode = new cc.PhysicsDebugNode(space);
    debugNode.visible = true;
    this.addChild(debugNode);
    

    您还可以添加以下内容来设置“地板”和在其上弹跳的精灵:

    //add a floor:
    var floor = new cp.SegmentShape(this.space.staticBody, cp.v(-1000, 10), cp.v(1000, 0), 10);
    floor.setElasticity(1);
    floor.setFriction(0);
    space.addStaticShape(floor);
    
    //add a square to bounce
    var myBody = new cp.Body(Infinity, cp.momentForBox(Infinity, 10, 50));
    myBody.p = cc.p(derecha - 10, arriba / 2);
    space.addBody(myBody);
    
    var myShape = new cp.BoxShape(myBody, 10, 50);
    myShape.setElasticity(1);
    myShape.setFriction(0);
    space.addShape(myShape);
    

    【讨论】:

    • 感谢您的回答。然而,如何显示与 cc.PhysicsDebugNode 的碰撞?
    • 我不明白你在问什么。添加PhysicsDebugNode 后,所有添加到space 的物理对象都将被渲染。
    • 我有静态物体(如空心圆)和一个由加速度计控制的动态物体。当动态物体与静态物体相互作用时,它会停止,但不会显示这种碰撞。在一些屏幕截图中,我看到碰撞点显示为点。
    • 这是我第一次听说。听起来很有趣。您能否提供上述屏幕截图和/或其来源的链接?
    • 可能我做错了什么:[这是我第一次使用物理引擎。这是我的项目goo.gl/TtHIF4
    【解决方案2】:

    为此,我必须在 project.json 中添加模块 "physics",然后使用 cc.PhysicsDebugNode

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多