jbox2d教程

7

您好,您能告诉我在哪里找到关于使用jbox2d编程游戏的教程吗?

3个回答

6

我已经将 C++ 手册中的“Hello World”示例移植到 jbox2d 上。这只是一行一行的移植。显然,您需要编写一个基本的 Java 程序并调用此代码。您还需要导入许多库,在 StackOverflow 上,我的导入格式有些问题,因此我在此不包括它们。希望您的 IDE 会为您处理导入。

    // Static Body
    Vec2  gravity = new Vec2(0,-10);
    World world = new World(gravity);
    BodyDef groundBodyDef = new BodyDef();
    groundBodyDef.position.set(0, -10);
    Body groundBody = world.createBody(groundBodyDef);
    PolygonShape groundBox = new PolygonShape();
    groundBox.setAsBox(50, 10);
    groundBody.createFixture(groundBox, 0);

    // Dynamic Body
    BodyDef bodyDef = new BodyDef();
    bodyDef.type = BodyType.DYNAMIC;
    bodyDef.position.set(0, 4);
    Body body = world.createBody(bodyDef);
    PolygonShape dynamicBox = new PolygonShape();
    dynamicBox.setAsBox(1, 1);
    FixtureDef fixtureDef = new FixtureDef();
    fixtureDef.shape = dynamicBox;
    fixtureDef.density = 1;
    fixtureDef.friction = 0.3f;
    body.createFixture(fixtureDef);

    // Setup world
    float timeStep = 1.0f/60.0f;
    int velocityIterations = 6;
    int positionIterations = 2;

    // Run loop
    for (int i = 0; i < 60; ++i) {
        world.step(timeStep, velocityIterations, positionIterations);
        Vec2 position = body.getPosition();
        float angle = body.getAngle();
        System.out.printf("%4.2f %4.2f %4.2f\n", position.x, position.y, angle);
    }

除此代码是坏的,世界不再支持jBox2D中的“doSleep”。 - Oliver Dixon
@iLoveUnicorns,我已经纠正了这个问题。(等待同行评审)。 - GKFX

5
我使用jBox2D和javaFX 2开发了一个简单的应用程序。你可以在这里找到该应用程序的教程和源代码。
此外,你可以在这里观看应用程序示例演示视频。

4
这并不是一个与编程直接相关的问题,所以很可能很快就会被关闭。
但是,不是在JBox2D中编写游戏,而是使用JBox2D编写游戏。如果你正在寻找使用jbox2d库的帮助,可以通过快速的谷歌搜索找到一个教程(适用于Android,但我认为库的一般用途应该是相当通用)看起来可能会有所帮助- 或者,尝试JBox2D user manual
另一方面,如果你真正想知道的是如何编写游戏...那么这是一个更大的话题,最好通过谷歌搜索游戏教程来解决。只需记住,制作游戏是一个通用主题,而不是特定于平台的,因此不要回避没有针对Java编写的教程- 尝试适应他们的示例代码,你可能会学到更多!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接