我是 JBox2D 的新手学习者。我只是第一次在 Android 上尝试 JBox2D(我知道 Android 开发并且我擅长它),因为我的项目需要物理。
现在,Box2D的教程和“官方用户手册”都说负重力会导致物体被向下吸引。但是,在我的情况下,当我将Vec2的第二个参数设置为负时,对象被向上吸引!奇怪的。
这是导致圆形自行上升的代码:
重力:
Vec2 gravity = new Vec2(0.0f, -50.0f);
boolean doSleep = true;
world = new World(gravity, doSleep);
圆形是通过以下代码制作的:
//body definition
BodyDef bd = new BodyDef();
bd.position.set(200, 500);
bd.type = BodyType.DYNAMIC;
//define shape of the body.
CircleShape cs = new CircleShape();
cs.m_radius = 10f;
//define fixture of the body.
FixtureDef fd = new FixtureDef();
fd.shape = cs;
fd.density = 1f;
fd.friction = 0.2f;
fd.restitution = 0.8f;
//create the body and add fixture to it
body = world.createBody(bd);
body.createFixture(fd);
我正在使用 SurfaceView 画布绘制:
canvas.drawCircle(body.getPosition().x, body.getPosition().y, 10, paint);
并且步进如下:
float timeStep = 1.0f / 60.f;
int velocityIterations = 6;
int positionIterations = 2;
world.step(timeStep, velocityIterations, positionIterations);
那么,我的代码有什么问题?我无法确定我所犯的错误。
另外, 我正在使用 JBox2D 在 Android 上制作类似网球的 2D 游戏。那么,谁能告诉我有关 JBox2D 的教程/书籍?虽然我用谷歌搜索,但我找不到一个好的教程。(虽然 Box2D 似乎比 JBox2D 更受欢迎)
如果有人可以在这里帮助我,我将不胜感激。谢谢你。