标签: jbox2d

Box2D中哪个方向为零(0)?

box2D中哪个方向被认为是0度?是北,南,东,西?然后顺时针或逆时针增加角度?

我已经阅读了手册,似乎没有在任何地方提到这一点.

box2d jbox2d

4
推荐指数
1
解决办法
1007
查看次数

碰撞后如何使两个身体粘住?

我真的坚持这个我可以成功地发现碰撞,但我不能让两个身体参与碰撞.

这是我的ContactListener

world.setContactListener(listener);

    listener = new ContactListener() {

        @Override
        public void preSolve(Contact contact, Manifold oldManifold) {

        }


        @Override
        public void postSolve(Contact contact, ContactImpulse impulse) {

        }

        //called when two fixtures cease to touch
        @Override
        public void endContact(Contact contact) {
            Fixture fixtureA = contact.getFixtureA();
            Fixture fixtureB = contact.getFixtureB();
            Gdx.app.log("beginContact", "between" + fixtureA.toString() + "and" + fixtureB.toString());
        }

        //called when two fixtures begin to touch
        @Override
        public void beginContact(Contact contact) {
            Fixture fixtureA = contact.getFixtureA();
            Fixture fixtureB = contact.getFixtureB();
            Gdx.app.log("beginContact", "between" …
Run Code Online (Sandbox Code Playgroud)

java box2d jbox2d libgdx

4
推荐指数
1
解决办法
1021
查看次数

哪里可以找到不同材料的夹具预设?

我在哪里可以找到夹具预设,可用于刚体物理引擎,如Box2D来模拟不同材料的行为?

我正在寻找常见材料的密度,摩擦力和恢复原状值,例如:

  • 光滑/粗糙的金属
  • 橡胶
  • 塑料

除了设置这些值以实现真实结果的试验和错误之外,还有其他方法吗?

box2d chipmunk box2d-iphone bulletphysics jbox2d

3
推荐指数
1
解决办法
840
查看次数

JBox2d - world.getBodyList()进入无限循环

我正在尝试创建一个可以将JBox2d世界的对象绘制到画布上的类.

在更新时我打电话给

render.draw(canvas,world);
Run Code Online (Sandbox Code Playgroud)

它将世界和画布传递给绘图类,它将循环遍历世界的对象并将它们绘制到画布中.

public void draw(Canvas canvas, World world)
{

    canvas.drawColor(0xFF6699FF);

    for ( Body b = world.getBodyList(); b!=null; b.getNext() )
    {
        Log.e("xy", String.valueOf( b.getPosition().x )+" "+String.valueOf( b.getPosition().y )  );
    }

}
Run Code Online (Sandbox Code Playgroud)

然而它似乎进入一个无限循环,后退按钮不起作用,然后它说"没有响应"并提供强制关闭.

在这种情况下,任何想法是什么是在身体中循环的正确方法?

谢谢!

java android box2d jbox2d

3
推荐指数
1
解决办法
906
查看次数

Libgdx Box2D像素到电表的转换?

当尝试使用Box2D编写游戏时,我遇到了Box2D的问题.我填充了纹理和精灵的长度的像素数,以在它周围创建一个框.一切都在正确的地方,但由于某种原因一切都很慢.通过在互联网上查看我发现,如果你没有将像素转换为米,box2d可能会将形状作为非常大的对象处理.这似乎是一切运动缓慢的合理原因.

我在这个网站上发现了类似的问题,但答案似乎没有帮助.在大多数情况下,解决方案是使用缩放因子制作将像素数转换为米的方法.我尝试了这一点,但一切都放错了地方并且尺寸错误.这对我来说似乎是合乎逻辑的,因为数字改变但具有相同的含义.

我想知道是否有办法让像素意味着更少的米,所以一切都应该在相同(像素)大小的同一个地方,但意味着更少的米.如果你有不同的方式,你认为可能有所帮助,我也想听听它..

这是我用来创建相机的代码

        width = Gdx.graphics.getWidth() / 5;
        height = Gdx.graphics.getHeight() / 5;

        camera = new OrthographicCamera(width, height);
        camera.setToOrtho(false, 1628, 440);
        camera.update();
Run Code Online (Sandbox Code Playgroud)

这是我用来创建对象的方法:

public void Create(float X, float Y, float Width, float Height, float density, float  friction, float restitution, World world){ 
    //Method to create an item
    width = Width;
    height = Height;

    polygonDef = new BodyDef();
    polygonDef.type = BodyType.DynamicBody;
    polygonDef.position.set(X + (Width / 2f), Y + (Height / 2f));

    polygonBody = world.createBody(polygonDef);

    polygonShape = new PolygonShape();
    polygonShape.setAsBox(Width / 2f, …
Run Code Online (Sandbox Code Playgroud)

java eclipse jbox2d libgdx

3
推荐指数
1
解决办法
6490
查看次数

JBox2D和libGDX Box2D有什么区别

我正在研究libGDX,并在我的游戏中使用Box2D进行简单的2D物理交互.但是,最近我发现存在一个名为JBox2D的库.

这两个图书馆有什么区别吗?彼此之间的优势是什么?

我知道它们都基于用于c ++ 的Box2D库,因为:

libgdx中的Box2D实现是围绕C++引擎的瘦Java包装器.


JBox2d是C++物理引擎LiquidFun和Box2d的Java端口.

但是,他们的意思是端口和包装?JBox2D比Box2D更完整吗?哪一个更快?

我问这个是因为我想知道将我的项目从一个改为另一个(在这种情况下从Box2D到JBox2D)可以影响或优化我的游戏性能.

java jbox2d libgdx

3
推荐指数
1
解决办法
2073
查看次数

为什么身体不会在重力作用下坠落?

我是box2d和libgdx游戏开发框架的新手.

我创造了一个世界和一个圆形.

我陷入了重力困境.我在libgdx box2d中创建的Circle并没有受到重力的影响.请帮我解决这个问题.

public void render(float delta) {
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 

    box2dDebugRenderer.render(world, orthographicCamera.projection);

    world.step(TIME_STEMP, VELOCITY_ITERAIONS, POSITION_ITERATION);
    System.out.println(b.getPosition().y);
}

@Override
public void resize(int width, int height) {
    orthographicCamera.setToOrtho(false, width/10, height/10);
    orthographicCamera.update();
}

@Override
public void show() {
    world = new World(new Vector2(0, -9.81f), true);
    box2dDebugRenderer = new Box2DDebugRenderer();
    orthographicCamera = new OrthographicCamera();


    BodyDef balldef = new BodyDef();
    balldef.type = BodyType.DynamicBody;
    balldef.position.set(0, 1);



    CircleShape ballshape = new CircleShape();
    ballshape.setRadius(1f);


    FixtureDef ballfixture = new FixtureDef();
    ballfixture.density = 1000f;
    ballfixture.friction = .3f;
    ballfixture.restitution = .7f; …
Run Code Online (Sandbox Code Playgroud)

box2d jbox2d libgdx

2
推荐指数
1
解决办法
434
查看次数

如何在Java中正确旋转多个对象?

我有一个Arraylist,其中的对象包含一个对象的位置和旋转,我想使用Graphics2D在屏幕上绘制.

public void render(Graphics g1) {
Graphics2D g = (Graphics2D) g1;
g.setColor(Color.white);
for(PhysicObject object : entities) {

if (object.getBody().getType() == BodyType.DYNAMIC) {
            Vec2 position = object.getBody().getPosition().mul(30);
            g.translate(position.x, position.y);
            g.rotate(object.getBody().getAngle());
            g.fillRect((int)-(object.width), (int)-(object.height), (int)(object.width*2), (int)(object.height*2));
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

第一个对象始终旋转正确,但以下旋转第一个对象而不围绕自身.

希望有人可以帮助我,谢谢.

java graphics rotation box2d jbox2d

1
推荐指数
1
解决办法
1663
查看次数