java - 如何使用应用于他们的 box2d 物理在舞台上渲染 Actor ?

标签 java libgdx box2d

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

2年前关闭。




Improve this question




我一直在 Libgdx 中制作游戏,制作游戏的唯一方法是通过 scene2d Stage。我制作了一个扩展 Actor 的 BaseActor 并从 BaseActor 类中制作我的 Actor 和角色。

但问题是我想制作更好的游戏并在其中使用物理。我找了又找,终于找到了box2d。我再次使用自己的方式在其中制作了一个游戏 BaseActor、BaseBody 和 Stage。

BaseBody 用于制作 body ,BaseActor 用于制作舞台 Actor ,可能和我以前的一样,但是在播放它时,我使用的重力不能更快地移动物体。 Action 太慢了。然后我又找了又找,发现问题出在公制上。我使用的是像素,这让我的游戏非常糟糕。我在互联网上找到了一个名为 ppm 的东西。我真的不知道如何使用它或它到底是什么或与之相关的任何其他事情。

然后我试图找到一个场景编辑器,发现overlap2d和visEditor都挂了,不再支持了。而且我想说我不知道​​camera.combined、camera.setToOrtho和matrix的含义。最后,当我在 box2d 中制作游戏时,至少比我以前的 splinter 项目更好,但仍然不能使用公制系统和很多错误,我看到当带有图像的盒子进入地面边缘时, body 会得到一些一种旋转,但图像仍然是相同的,我什至使用 body.getangle 并设置图像的旋转,它仍然不旋转。而且我不知道我应该如何让事情重新开始。

enter image description here

这是我使用 visEditor 制作的游戏,除了图像的 setSize 和更多关于原点 x 和 y 的错误外,它运行良好。我在这个中使用了访问者的场景加载器,没有使用 Stage。而这个使用公制。

enter image description here

这是我使用舞台和其他东西但没有场景编辑器的游戏。

enter image description here

--- matrix , camera.setToOrtho , camera.combined 是什么意思。

--- 如何在 box2d 和 Stage 中使用公制而不是像素。

--- 是否有任何好的、受支持和更新的 libgdx 场景编辑器。

--- 有没有其他方法可以制作游戏而不是舞台和 Actor ,但使用类和更高效且代码可重用于 libgdx 和 box2d

--- 如何在图像中应用 body 的物理特性。

---我是否正确使用舞台和 Actor 进行编码,并使用batch.draw()和使用 body 位置等填充图像,或者是否有任何方法可以用图像或任何其他方法填充 body ,至少比我的更好方式。

最佳答案

我刚刚为您的一些问题找到了一些答案。

what is the meaning of matrix , camera.setToOrtho , camera.combined.



答:我也不知道对不起。

how to use metric system instead of pixels in both box2d and Stage.



回答:您可以通过将每个对象的宽度和高度以及相机与恒定的 PIXEL2METER 相除来做到这一点。

(首先创建一个常量静态值,将其命名为 PIXEL2METER,然后在您的 baseActor 类中,如果您通过它加载纹理,只需 setSize 将纹理的宽度和高度除以 PIXEL2METER,然后将两个变量设为您想要的宽度和高度,然后将它们除以 PIXEL2METER并制作一个正交相机并调用方法 setToOrtho(false, width,height) 通过获取 getViewport().setCamera(camera) 或使用相机设置视口(viewport)来将此相机设置为您的舞台)

is there any good , supported , and updated scene editor for libgdx.



答:实际上没有。没有任何重叠 2d 和 visEditor 是我也知道的,但它们都已弃用并且不再受许多错误的支持。 libgdx 只是一个游戏框架,所以它没有自己的场景编辑器。

is there any other way to make game instead of stage and actors but with classes and more efficient and code reusable for libgdx and box2d



回答:实际上,编程语言是一门非常广泛和深入的知识,您可以通过多种方式制作游戏,但制作游戏的最佳方式是您可以使用的方式,您知道并相信我,您会找到解决问题的方法.

how to apply the physics of the body in the image too.



回答:我不知道对不起。

am I coding right with using stage and actors and filling the body with image using the batch.draw() and using the body position and more or is there any method that fills body with image or any other at least better than my way.



回答:再一次,最好的方法是你知道的方式,我还没有听说过任何用纹理或类似东西填充 body 的方法,但无论如何都要继续搜索,除非你没有找到任何答案,否则不要开始编码。如果没有任何方法,只需创建一个。

关于java - 如何使用应用于他们的 box2d 物理在舞台上渲染 Actor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61154352/

相关文章:

java - 将书籍添加到 ArrayList 库存类

Java jLabel.setText() 方法不使用 String 重载

java - 没有@Stateless 可以使用@Webservice 注解吗?

java - For-loop 在迭代 vector 数组时仅给出一个值 (libGDX)

java - 为什么 Sprite 会抽搐?

ios - Box2D 中的高级碰撞检测 - 碰撞点、力等

java - JUnit 4 - 期望某个类的异常,但不是子类

java - 如何检查 libgdx 中的交集?

java - 无限垂直世界

java - 使用物理体编辑器进行 Libgdx Box2d 碰撞检测