Articles of box2d libgdx

为LibGDX使用Physics Body Editor时出错

在我的游戏中,我一直在尝试使用libgdx的物理主体编辑器,但是我一直在得到一个错误。 所以我认为我的代码可能有些问题,所以我把这个例子从网站( http://www.aurelienribon.com/blog/projects/physics-body-editor/ )上取下来,然后试着运行它。 但是我在同一行代码中得到了相同的确切错误。 从网站的例子中创建错误的代码行是 BodyEditorLoader loader = new BodyEditorLoader(Gdx.files.internal("data/test.json")); 和错误是 线程“LWJGL应用程序”exceptioncom.badlogic.gdx.utils.GdxRuntimeException:java.lang.NoSuchMethodError:com.badlogic.gdx.utils.JsonReader.parse(Ljava / lang / String;)Ljava / lang / Object; 在com.badlogic.gdx.backends.lwjgl.LwjglApplication $ 1.run(LwjglApplication.java:118)引起:java.lang.NoSuchMethodError:com.badlogic.gdx.utils.JsonReader.parse(Ljava / lang / String;) Ljava /郎/对象; aurelienribon.bodyeditor.BodyEditorLoader.readJson(BodyEditorLoader.java:179)at aurelienribon.bodyeditor.BodyEditorLoader。(BodyEditorLoader.java:41)at com.Jon.App.App.createBottle(App.java:129)at com.Jon .App.App.create(App.java:76)at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:132)at com.badlogic.gdx.backends.lwjgl.LwjglApplication $ 1.run( LwjglApplication.java:112) 有想法该怎么解决这个吗?

在box2D主体中保持速度

我想划定我的速度,并保持这个速度不断,但它变得越来越高,如果我申请线速度它不反弹:/,这是我的代码的一部分 double fx = .25f*Math.cos(Math.toRadians(rotation)); double fy = .25f*Math.sin(Math.toRadians(rotation)); this.getBody().applyLinearImpulse(World.toGameCoordinates((float)fx, (float)fy), this.bodydef.position); this.getBody().setLinearVelocity(World.toGameCoordinates((float)fx, (float)fy)); 我能做些什么来保持速度不变,并保持弹跳

在libgdx中dynamic创建大量的精灵

我创建的组包含精灵和box2D添加机构,但是当我创建了很多这个我的animation变得非常缓慢。 我该如何处理?

运用box2d使用libgdx

我对使用物理引擎相当陌生,想知道玩家角色移动的最佳做法。 目前,我有一个叫做Hero的类,它有一个CircleShape,当用户按左/右/上/下时,它在适当的方向上获得线性冲动。 所有这一切正常。 问题发生在玩家没有input任何input的情况下,形状在最后的方向上进行了很长一段时间,但是如果形状停止的更快,我会喜欢它。 玩家看到世界自上而下,所以世界引力被设置为(0; 0)。 也许使用冲动来移动角色的想法是有缺陷的,我只想知道什么是有效的。

在LibGDX(Box2D)中触摸时删除身体

我正在使用LibGDX创建一个新的项目。 我想要做的是,我从一个tmx文件加载到正常工作的水平的身体。 身体也有他们的精灵。 问题是,我想让用户触摸现场的某些物体。 当他们触摸身体时,他们将能够从场景中删除或删除它。 无论如何,我可以在LibGDX做到这一点?

libgdx夹具给出无响应的错误

需要一些支持。 我是libgdx游戏引擎的新手。 以下是我的代码 package com.game.box2d.fruitcart; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.physics.box2d.Body; import com.badlogic.gdx.physics.box2d.BodyDef; import com.badlogic.gdx.physics.box2d.BodyDef.BodyType; import com.badlogic.gdx.physics.box2d.Box2DDebugRenderer; import com.badlogic.gdx.physics.box2d.CircleShape; import com.badlogic.gdx.physics.box2d.FixtureDef; import com.badlogic.gdx.physics.box2d.PolygonShape; import com.badlogic.gdx.physics.box2d.Shape; import com.badlogic.gdx.physics.box2d.World; public class FruitCartBox2D extends Game{ World world; Box2DDebugRenderer debugRenderer; OrthographicCamera […]

需要通过焊接接头连接2个物体,但不能在质量中心连接

我已经通过焊缝成功地连接了两个物体,但是我的问题是我想要join不在质心的物体的角落。 有没有办法做到这一点? 上面的图像包含3个要通过焊缝连接的多边形体。 随时问更多的信息。 任何帮助将是可观的。

LibGDX Box2D正文和精灵和DebugRenderer不同步

我有一些与Box2D机构的问题。 我有一个GameObject持有一个精灵和正文。 我使用ShapeRenderer来绘制Body和Sprite边界框的轮廓。 我还添加了一个Box2DDebugRenderer,以确保一切排队正确。 我的问题是雪碧和身体首先完全重叠,但是当我将身体移动一点时,精灵就会在汽车面对北方或南方时返回。 这是我意思的图像:(不知道那是什么线,第一次出现)BLUE是身体,RED是雪碧,PURPLE是Box2DDebugRenderer。 另外,您可能注意到右上角有一个紫色方块。 那么这是由Box2Ddebugging渲染器绘制的汽车。 我认为这可能是相机,但我一直在玩相机几个小时,似乎没有任何工作。 所有给我奇怪的结果。 这是我的代码: 屏幕: public void show() { // ——————— SETUP ALL THE CAMERA STUFF —————————— // battleStage = new Stage( 720, 480, false ); // Setup the camera. In Box2D we operate on a meter scale, pixels won't do it. So we use // an Orthographic […]

libgdx精灵相对于身体的位置

如果这是重复的道歉,因为在过去的几天里我找不到另外的讨论。 问题:我正在使用libgdx和box2d,而且我现在正在每次渲染调用时将精灵的位置更新到主体的当前位置。 使用debugRenderer来查看尸体,我发现在身体的移动/位置和正在移动的精灵之间存在相当明显的滞后。 问:这是否正常,可能提前执行碰撞? 如果不是,我应该以不同的方式操纵/关联这些头寸吗? 提前致谢! [解决scheme]这是我的编码错误。 在下面的一个好回复指出,我正在更新精灵相对于身体的位置,然后步进物理。 因此绝对不要将精灵设置到身体的CURRENT位置。 谢谢!

在应用冲动时,Box2D + LibGDX有奇怪的行为

我一直在玩Box2D和LibGDX,并使用DecisionTreeGames的示例代码作为testing场。 现在我有一个四面墙和一个矩形的屏幕,让我们称之为砖。 当我使用applyLinearImpulse对砖,它开始反弹没有任何模式的左右,不会停止! 我试图增加摩擦,增encryption度,但行为仍然保持不变。 以下是一些可能有用的代码: 冲动的方法: center = brick.getWorldCenter(); brick.applyLinearImpulse(20, 0, center.x, center.y); 定义砖: brick_bodyDef.type = BodyType.DynamicBody; brick_bodyDef.position.set(pos); // brick is initially on the ground brick_bodyDef.angle = 0; brick_body = world.createBody(brick_bodyDef); brick_body.setBullet(true); brick_bodyShape.setAsBox(w,h); brick_fixtureDef.density = 0.9f; brick_fixtureDef.restitution = 1; brick_fixtureDef.shape = brick_bodyShape; brick_fixtureDef.friction=1; brick_body.createFixture(fixtureDef); 墙被定义为相同的只有他们的子弹值被设置为false 我真的很感激,如果你能帮我改变这个代码来实现一个现实的行为(即当我施加冲动的砖块,它应该绊倒几次,然后完全停止)。 更多信息: 起初,砖头静止不动。 右方冲动,缓缓向右倾斜。 它接触到地面的那一刻,高速跳回。 这就像地面是一个蹦床 ! 从这里开始,它反弹得非常快。 在这些跳跃,它很less触及其他墙壁。