Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 Libgdx-Box2D的速度还不够快_Java_Libgdx_Box2d - Fatal编程技术网

Java Libgdx-Box2D的速度还不够快

Java Libgdx-Box2D的速度还不够快,java,libgdx,box2d,Java,Libgdx,Box2d,我有一个矩形,我想快速移动,但无论出于什么原因,我使用的更快的速度似乎仍然很慢。我做错了什么?我还把一个圆圈从上面扔到了一个表面上,即使我使劲玩弄重力,它也会像气球一样落下 一些声明 float velocity = 10000000f; static final float BOX_STEP=1/60f; static final int BOX_VELOCITY_ITERATIONS=6; static final int BOX_POSITION_ITERATIONS=2;

我有一个矩形,我想快速移动,但无论出于什么原因,我使用的更快的速度似乎仍然很慢。我做错了什么?我还把一个圆圈从上面扔到了一个表面上,即使我使劲玩弄重力,它也会像气球一样落下

一些声明

float velocity = 10000000f;
static final float BOX_STEP=1/60f;  
static final int BOX_VELOCITY_ITERATIONS=6;  
static final int BOX_POSITION_ITERATIONS=2;  
重力,尝试了一切,他们似乎都很烂

世界=新世界(新矢量2(0,-50),真)

我的物体移动到的地面

    //ground
    BodyDef groundBodyDef =new BodyDef();  
    groundBodyDef.position.set(new Vector2(0, camera.viewportHeight * .08f));  
    Body groundBody = world.createBody(groundBodyDef);  
    PolygonShape groundBox = new PolygonShape();  
    groundBox.setAsBox((camera.viewportWidth) * 2, camera.viewportHeight * .08f);  
    groundBody.createFixture(groundBox, 0.0f);   
下面是我的物品:

    //ball
    bodyDef = new BodyDef();  
    bodyDef.type = BodyType.DynamicBody;  
    bodyDef.position.set(new Vector2(camera.viewportWidth * .2f, camera.viewportHeight * .75f));  
    body = world.createBody(bodyDef);  
    CircleShape dynamicCircle = new CircleShape();  
    dynamicCircle.setRadius(camera.viewportWidth * .035f);  
    FixtureDef fixtureDef = new FixtureDef();  
    fixtureDef.shape = dynamicCircle;  
    fixtureDef.density = 0.5f;  
    fixtureDef.friction = 0.5f;  
    fixtureDef.restitution = 0.8f;  
    body.createFixture(fixtureDef); 
    body.setLinearVelocity(0,-100);

    //slime boy
    BodyDef bodyBoxDef = new BodyDef();  
    bodyBoxDef.type = BodyType.DynamicBody;  
    bodyBoxDef.position.set(new Vector2(camera.viewportWidth * .08f,camera.viewportHeight * .191f));  
    bodyBox = world.createBody(bodyBoxDef);  
    PolygonShape slimeBox = new PolygonShape();  
    slimeBox.setAsBox(camera.viewportWidth * .04f, camera.viewportHeight * .03f);
    FixtureDef fixtureSlimeDef = new FixtureDef();  
    fixtureSlimeDef.shape = slimeBox;  
    fixtureSlimeDef.density = 1.0f;  
    fixtureSlimeDef.friction = 0.0f;  
    fixtureSlimeDef.restitution = 0.0f;  
    bodyBox.createFixture(fixtureSlimeDef);  

    debugRenderer = new Box2DDebugRenderer(); 

    body.applyTorque(1000000000);
    bodyBox.setFixedRotation(true);
    bodyBox.setBullet(true);
有人建议加快这方面的行动吗

我一直在使用1280×720的屏幕,但我从其他来源看到更小更好,所以我缩小到640×260,但仍然不是我想要的性能。我到底应该多小?

来自(第2.2节):

Box2D针对米、千克和秒进行了调整。所以你可以考虑 范围以米为单位。Box2D通常在处理对象时效果最佳 是典型真实世界对象的大小。例如,一个桶是 大约1米高。由于浮点运算的局限性 算法,使用Box2D模拟冰川或尘埃的运动 粒子不是一个好主意


是的,我刚刚意识到这一点,我已经实现了世界到米的转换。现在唯一的一件事是,我的速度很快,但它跳过了一堆值,但我将学会解决这个问题。非常感谢。