首页 > 解决方案 > 如何使用应用于他们的 box2d 物理在舞台上渲染演员?

问题描述

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

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

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

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

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

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

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

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

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

标签: javalibgdxbox2d

解决方案


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

矩阵、camera.setToOrtho、camera.combined 是什么意思。

答:我也不知道对不起。

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

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

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

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

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

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

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

如何在图像中应用身体的物理特性。

回答:我不知道对不起。

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

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


推荐阅读