Tag: jbox2d

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(); 这是我用来创建对象的方法: public void Create(float X, float Y, float Width, float Height, float density, float friction, float restitution, World world){ //Method to create an item […]

Slick2D和JBox2D。 如何绘制

在问这个之前我做了很多网上搜索。 我不能这样做。 这对我来说有点难以理解。 那么我如何在与世界位置的身体相对应的右侧屏幕位置绘制图像? 感谢名单。 如果有人在同一个障碍面前找到了他,我会发布一个HOW TO,而不是正常速度的好解释。 你可以在这里找到它: http : //romeo.akademx.ro/2012/04/06/slick-and-box2d/ 这是渲染function: public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException { g.setBackground(Color.white); g.pushTransform(); g.translate(worldToScreen(body.getPosition()).x, worldToScreen(body.getPosition()).y); g.rotate(15, 15, (float) Math.toDegrees(body.getAngle())); part.draw(); g.popTransform(); g.drawString(“Count: ” + cont, 5, 40); //world.drawDebugData(); } 这些是我用来转换世界屏幕协调的function: public Vec2 screenToWorld(Vec2 screenV) { return new Vec2((screenV.x – offset.x) / scaleFactor, yFlip […]

这是使用Java 2D Graphics API的正确方法吗?

我正在为JBox2D模拟创建一个图形前端。 模拟以递增方式运行,并且在更新之间,应该绘制模拟的内容。 类似于游戏,除了没有输入。 我只需要几何图元来绘制JBox2D模拟。 这个API似乎是最简单的选择,但它的设计有点令人困惑。 目前我有一个名为Window JFrame类,它包含另一个名为Renderer类作为成员。 Window类仅初始化自身并提供updateDisplay()方法(由主循环调用),该方法在Renderer上调用updateDisplay(objects)方法。 我自己制作了这两种方法,它们的唯一目的是在Renderer上调用repaint() 。 JPanel应该以这种方式使用吗? 或者我应该使用一些更复杂的动画方法(这涉及一些后端线程中的事件和/或时间间隔)?