libGdx如何使用图像或演员作为主体

libGdx如何使用图像或演员作为主体,libgdx,actor,tile,Libgdx,Actor,Tile,我浏览了libgdxwiki/教程,但没有找到将图像或演员用作物理实体的示例。 在我的游戏中,我在舞台上加了一个演员。 但我想添加这个演员或精灵的形象作为物理体 我必须拖动这个演员,甚至想检测与其他物体的碰撞 如果有,请给我推荐信 谢谢这有点棘手。你不能把图像或演员当作物理实体 您将需要实现一个新的“PhysicsActor”,它扩展了Actor。这个物理演员将有一个身体作为一个属性,并将成为libgdx场景和box2d世界之间的桥梁 演员将根据身体的位置更新其位置(注意米到像素的转换)。参与者

我浏览了libgdxwiki/教程,但没有找到将图像或演员用作物理实体的示例。 在我的游戏中,我在舞台上加了一个演员。 但我想添加这个演员或精灵的形象作为物理体

我必须拖动这个演员,甚至想检测与其他物体的碰撞

如果有,请给我推荐信


谢谢这有点棘手。你不能把图像或演员当作物理实体

您将需要实现一个新的“PhysicsActor”,它扩展了Actor。这个物理演员将有一个身体作为一个属性,并将成为libgdx场景和box2d世界之间的桥梁

演员将根据身体的位置更新其位置(注意米到像素的转换)。参与者将像点击一样接收输入,并需要创建一个(鼠标)关节,以便拖动身体并跟随鼠标

如何处理附着到主体的图像的渲染也是自定义的。您可以手动为每个PhysicsEntity提供一个将由draw调用渲染的精灵。或者您将使用一个编辑器(例如RUBE,libgdx论坛的贡献部分也有一个RUBE加载程序),它将允许您将图像附加到主体上,并从编辑器中读取这些图像

你也可以检查这个链接,我想这正是你所需要的,但它的实现似乎有点不同。他使用某种层结构来连接libgdx场景和box2d世界。


除此之外

@VikalpJain这完全是错误的。scene2d.ui仅用于用户界面。scene2d是一个2d场景图,也可以使用box2d与物理实体一起使用,以前已经做过很多次。我正在考虑在下一个游戏中结合box2d和scene2d(如果我完成了这个游戏:P)。在我目前的游戏中,我使用的是世界单位而不是像素(通过使用摄像头vewport)。1个worldunit可安装1米的box2d。我还需要从米转换成像素吗?或者我可以用这个米来渲染所有东西吗?@Springrbua在这种情况下,不需要转换,但我不建议你使用1:1的比例。在box2d常见问题解答中:“您应该尝试在0.1-10米范围内移动对象”。1:1的比例可以让你的物体只有10x10像素来保持精确的结果。我想你理解错了。。。我使用的是worldunits,其大小取决于屏幕分辨率。我说在每个屏幕上必须有50个x和32个y。如果屏幕分辨率为500*320,则每个磁贴的分辨率为10px。屏幕是1000*640,每片是20像素。。。所以1米应该是1世界单位,在500*320分辨率上是10像素,在1000*640分辨率上是20像素。