想做一個剪斷繩子的效果

大家好,我想做一個遊戲是有兩條繩子吊著只猴子,切斷一條,猴子會遙擺,只要user touch到兩條繩子,猴子就會下跌,我用了兩個distance joint 連住猴子了,但繩的效果與touch event不知如何做,請大神指路

想要的效果

:sob:

没做过,但思路的话我认为:

直接给绳子做一个touchend(),然后注册事件为把distanceJoint 关闭掉,再执行绳子断掉的函数
但是不清楚一根断了,另外一根情况是怎样的:joy::joy:

这个绳子应该是实时画出来的,比想象的要复杂一点

Thank you for reply liaoyifei, 另外一邊有distanceJoint 連住所以應該有遙擺效果

Thank you for reply, Mark, 不知應該如何畫,如何做斷掉下跌效果 :cry: :sob:

网上搜吧,一两句说不清楚。

这个是不是要用到物理引擎呀

有少少進展,造一個prefab,prefab加rigidBody,revolutejoint,physicsboxcollider,在cavas加兩個node,加100個prefab入node


drawLine : function(){

    for(i = 0; i <100; i++){

        var box = cc.instantiate(this.lineBox);
        var box2 = cc.instantiate(this.lineBox);
        this.wire.addChild(box,1);
        this.wire2.addChild(box2,2);
        box.setPosition(0,0-(4 * i));
        box2.setPosition(0,0-(4 * i));
        lineArray.push(box);
        lineArray2.push(box2);
      //  box.getComponent(cc.RevoluteJoint).connectedBody  = this.wire;

    }

    var wireBody = this.wire.getComponent(cc.RigidBody);
    var wireBody2 = this.wire2.getComponent(cc.RigidBody);
    lineArray[0].getComponent(cc.RevoluteJoint).connectedBody  = wireBody;
    lineArray2[0].getComponent(cc.RevoluteJoint).connectedBody = wireBody2;

    for (i = 1; i<100;i++){

        var body = lineArray[i-1].getComponent(cc.RigidBody);
        var body2 = lineArray2[i-1].getComponent(cc.RigidBody);

        lineArray[i].getComponent(cc.RevoluteJoint).connectedBody  = body;
        lineArray2[i].getComponent(cc.RevoluteJoint).connectedBody  = body2;
    }

    var monkeyBody = this.monkey.node.getComponent(cc.RigidBody);
    lineArray[99].getComponent(cc.DistanceJoint).connectedBody  = monkeyBody;
   // lineArray[99].getComponent(cc.DistanceJoint).connectedAnchor()
    lineArray2[99].getComponent(cc.DistanceJoint).connectedBody  = monkeyBody;
   
    }

maybe the next step is add listener to every prefab for cutting.

1赞

各位大哥想到更好的方法,請指點小弟我一二! 謝謝大家

你这个应该需要使用物理引擎 你先去看一下物理引擎这块吧

Thank you for your reply 克里特彼岸, 已經在使用了 :wink:

666.啊