Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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 jbox2D多边形形状集位置_Java_Position_Shape_Jbox2d - Fatal编程技术网

java jbox2D多边形形状集位置

java jbox2D多边形形状集位置,java,position,shape,jbox2d,Java,Position,Shape,Jbox2d,我开发了jbox2d(java),在创建多边形形状时遇到了一个问题 我不能选择多边形的位置,我定义了一个“m_形心”字段作为窗口的中心。多边形保留在左角 public class Player { private Body body; public Player(World world) { BodyDef bodyDef = new BodyDef(); bodyDef.angle = (float) Math.toRadians(0.0f);

我开发了jbox2d(java),在创建多边形形状时遇到了一个问题

我不能选择多边形的位置,我定义了一个“m_形心”字段作为窗口的中心。多边形保留在左角

public class Player {
    private Body body;

    public Player(World world) {
        BodyDef bodyDef = new BodyDef();
        bodyDef.angle = (float) Math.toRadians(0.0f);
        bodyDef.position.set(800.0f / 2, 600.0f / 2);
        bodyDef.type = BodyType.DYNAMIC;

        /*Vec2[] vertices = {
            new Vec2(bodyDef.position.x, bodyDef.position.y - 10.0f),
            new Vec2(bodyDef.position.x + 10.0f, bodyDef.position.y + 10.0f),
            new Vec2(bodyDef.position.x - 10.0f, bodyDef.position.y + 10.0f)
        };*/

        Vec2[] vertices = {
                new Vec2(0.0f, - 10.0f),
                new Vec2(+ 10.0f, + 10.0f),
                new Vec2(- 10.0f, + 10.0f)
        };

        PolygonShape shape = new PolygonShape();
        shape.set(vertices, vertices.length);
        shape.m_centroid.set(bodyDef.position);

        FixtureDef fixtureDef = new FixtureDef();
        fixtureDef.shape = shape;
        fixtureDef.density = 0.5f;
        fixtureDef.friction = 0.3f;
        fixtureDef.restitution = 0.5f;

        body = world.createBody(bodyDef);
        body.createFixture(fixtureDef);
    }
}

质心假定为局部坐标中多边形的中心,用于扭矩/质量计算。你不应该修改它。相反,您需要在主体上使用变换。尝试类似于
body.getTransform().setPos(__;)的方法

请对代码、输入/输出和结构化文档(如HTML或XML)使用代码格式。为此,请选择示例并单击消息发布/编辑表单上方的
{}
按钮。