加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – jbox2d教程

发布时间:2020-12-15 03:15:08 所属栏目:Java 来源:网络整理
导读:你能告诉我吗: 我在哪里可以找到“在jbox2d中编程游戏”的教程? 解决方法 我已将C手册中的Hello World示例移植到jbox2d.这只是一个逐行端口.显然你需要编写一个基本的 java程序并调用这段代码.你还需要导入一些库,我在StackOverflow中的导入格式有问题所以
你能告诉我吗:
我在哪里可以找到“在jbox2d中编程游戏”的教程?

解决方法

我已将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.2fn",position.x,position.y,angle);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读