如何在将box2d物理应用于角色的情况下使其呈现在舞台上?

问题描述 投票:0回答:1

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

但是,我想做更好的游戏,并在其中使用物理学。我搜索了一下,终于找到了box2d。我用自己的方式再次使用BaseActor,BaseBody和Stage制作了游戏。

BaseBody用于制作实体,BaseActor用于制作舞台演员,可能与我的旧演员相同,但是在播放时,我使用的重力无法更快地移动对象。运动太慢了。然后,我再次搜索,发现问题出在公制上。我当时使用像素,这使我的游戏非常糟糕。我在互联网上发现了名为ppm的东西。我真的不知道如何使用它,它到底是什么或与它相关的任何其他东西。

然后,我试图找到一个场景编辑器,发现overlay2d和visEditor都掉线了,不再受支持。我想说的是我不知道camera.combined,camera.setToOrtho和matrix的含义。最后,当我在box2d中制作游戏时,至少比以前的旧项目要好,但是仍然不能使用公制和许多错误,我看到当带有图像的盒子移到地面的边缘时,身体会有些变形旋转,但图像仍然相同,我什至使用body.getangle并设置图像的旋转,使其仍然不旋转。而且我不知道该如何使工作再次恢复正常。

enter image description here

这是我使用visEditor制作的游戏,除了图像的setSize和有关原点x和y的其他错误外,其他都可以正常工作。在此阶段,我没有使用viseditor的场景加载器。而这个使用公制。

enter image description here

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

enter image description here

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

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

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

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

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

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

java libgdx box2d
1个回答
1
投票

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

[matrix,camera.setToOrtho,camera.combined的含义是什么。

ans:我都不知道对不起。

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

ans:您可以通过用恒定的PIXEL2METER除以每个对象的宽度和高度以及照相机来完成此操作。

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

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

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

还有其他方法可以使游戏代替舞台和演员,但可以使类和更高效,并且代码可重用于libgdx和box2d

ans:实际上,编程语言是一种非常广泛而深刻的知识,您可以通过多种方式来制作游戏,但最重要的是,制作游戏的方式是您可以通过自己的方式认识并信任我,您将找到解决方案。您的问题。

也如何在图像中应用身体的物理学。

ans:我不知道对不起。

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

ans:同样,最大的方法就是您知道的方法,而且我还没有听说过用纹理或类似的东西填充主体的方法,但是无论如何都要继续搜索,除非您没有找到答案,否则不要开始编码。如果没有任何方法,请创建一个。

© www.soinside.com 2019 - 2024. All rights reserved.