Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Box2D LibGDX绳索问题_Java_Libgdx - Fatal编程技术网

Java Box2D LibGDX绳索问题

Java Box2D LibGDX绳索问题,java,libgdx,Java,Libgdx,我正在创建一条带有一系列Box2D主体的绳索,代码如下: public void create(float length, float ropeLength){ Array<Body> bodies = new Array<Body>(); bodies.add(BodyFactory.createBox(world, position.x, position.y, length, length, BodyType.StaticBody, 0, 0, 0,

我正在创建一条带有一系列Box2D主体的绳索,代码如下:

public void create(float length, float ropeLength){
    Array<Body> bodies = new Array<Body>();
    bodies.add(BodyFactory.createBox(world, position.x, position.y, length, length, BodyType.StaticBody, 0, 0, 0, "RopeMain"));

    for(int i = 1; i < ropeLength; i++){
        bodies.add(BodyFactory.createBox(world, position.x, position.y - (((length/2) / Core.PPM) * i),
                length, length, BodyType.DynamicBody, 0, 0, 0, "RopeBody" + i));

        RopeJointDef rDef = new RopeJointDef();
        rDef.bodyA = bodies.get(i - 1);
        rDef.bodyB = bodies.get(i);
        rDef.collideConnected = true;
        rDef.maxLength = (length/2)/Core.PPM;
        rDef.localAnchorA.set(position.x, -((length / 2) / Core.PPM));
        rDef.localAnchorB.set(position.x, ((length / 2) / Core.PPM));
        world.createJoint(rDef);
    }
}
public void创建(浮动长度、浮动长度){
数组体=新数组();
Bodys.add(BodyFactory.createBox(world,position.x,position.y,length,length,BodyType.StaticBody,0,0,0,“RopeMain”);
对于(int i=1;i
请允许我分享一些参数

对于
BodyFactory.createBox
,它需要以下内容:

世界、xPos、YPO、宽度、高度体型、密度、摩擦、恢复、夹具用户数据。(长度相同,因为它使用方框)

Core.PPM是每米的像素数。还请注意,该位置在构造函数中被PPM分割

问题:为什么下面的几行会向右移动


任何信息都是非常有用的,还有密度、摩擦力和恢复力如何影响绳索?谢谢

关节的
localAnchor
相对于身体中心,而不是绝对值。这意味着,如果要将关节设置为
bodyA
的中心底部和
bodyB
的中心顶部,则需要使用

    rDef.localAnchorA.set(0, -((length / 2) / Core.PPM));
    rDef.localAnchorB.set(0, ((length / 2) / Core.PPM));

关节的
localAnchor
相对于身体中心,不是绝对值。这意味着,如果要将关节设置为
bodyA
的中心底部和
bodyB
的中心顶部,则需要使用

    rDef.localAnchorA.set(0, -((length / 2) / Core.PPM));
    rDef.localAnchorB.set(0, ((length / 2) / Core.PPM));