当前位置: 首页 > 知识库问答 >
问题:

LibGDX Sprite Box2D圆形:考虑原点的定位

楚俊逸
2023-03-14

我的问题是,我的Box2D身体有另一个位置,而不是我想为该身体渲染的LibGDX精灵。在我的渲染循环中,对于每个实体,我将其精灵的位置设置为实体的位置,然后渲染它。创建圆以外的Box2D形状时,Box2D不会将其从原点移动,LibGDX精灵也不会移动。如果我现在移动或设置身体的位置,我的精灵将始终跟随它。但不幸的是,这在圆形图形中是不可能的:因为LibGDX的Sprite#设置位置没有考虑Sprite的原点(仅用于缩放和旋转),所以Sprite由它的下角设置。问题是:Box2D圆环形状的移动考虑了原点!所以我的精灵总是从形状的原点开始。有人知道怎么解决吗?最后,我希望在考虑到原点的同时,始终移动这两个位置。我该怎么做?

共有1个答案

宗冷勋
2023-03-14

Box2d车身原点从未更改。圆形和长方体形状的原点位于中间,多边形形状的原点位于左下角。唯一的解决方法是,将精灵原点更改为中间,即sprite。setOriginCenter()

如果主体是圆形或长方体形状,则精灵位置设置为类似于
精灵。setPosition(body.getPosition()。x-雪碧。getWidth()/2,正文。getPosition()。y-雪碧。getHeight()/2)
如果主体是多边形,则代码应类似于精灵。setPosition(body.getPosition()。x、 身体。getPosition()。y) )

 类似资料:
  • 20.6 灾难复原的考虑 之所以要备份当然就是预防系统挂点啦!如果系统真的挂点的话,那么你该如何还原系统呢? 硬件损毁,且具有完整备份的数据时 由于是硬件损毁,所以我们不需要考虑系统软件的不稳定问题,所以可以直接将完整的系统复原回去即可。 首先,你必须要先处理好你的硬件,举例来说,将你的硬盘作个适当的处理,譬如创建成为磁盘阵列之类的。 然后依据你的备份状态来复原。举例来说,如果是使用差异备份,那么

  • 我正在尝试解决简单的任务,但我没有找到任何优雅的解决方案。 我基本上解决了两个圆形扇区的交集。每个扇区由(-pi, pi]范围内的2个角度(从atan2 func)给出。每个选择器占用的最大角度为179.999。所以每两个角度就可以知道圆形扇区的位置。 返回值应根据以下内容描述互交:

  • 我有一个Spring Boot项目,其中Flyway与JPA一起使用。 该项目运行完全正常。由于一些要求,我不得不改变Flyway加载的顺序,以便在Hibernate后加载。我搜索并找到了以下解决方案 。我按照上述链接中的答案创建了。现在,当我运行该应用程序时,它会给我以下错误, 现在我对Spring Boot相当陌生,因此无法理解此错误,并且在网上找不到与此错误相关的任何内容。

  • 我的Spring Boot MVC REST应用程序有问题。我试图自己解决这个问题几天,但还没有找到解决方案。希望你能帮我:) 我的主应用程序: 我的配置类: TestTableRepository.java: IVectorData: 这里是: 问题是Spring找不到“testTableRepository”Bean。 错误代码: 但有一件有趣的事是,第二个自动连线的候选者“IVectorDa

  • 问题内容: 我正在寻找一种确定矩形和圆形之间相交区域的快速方法(我需要进行数百万次此类计算)。 一个特殊的属性是,在所有情况下,圆形和矩形始终具有2个相交点。 问题答案: 给定2个交点: *圆内有 *0个顶点 :圆形线段的面积 1个顶点 在圆内:圆弧段和三角形的面积之和。 *圆内有 *2个顶点 :两个三角形和一个圆形线段的面积之和 *圆内有 *3个顶点 :矩形的面积减去三角形的面积再加上圆形线段的

  • 我有一个Symfony 3.4项目和一个旧项目(SF 2.1)的代码-我想从旧项目到新项目的代码。在这两个项目中都不存在任何服务。 通过运行php bin/控制台我得到错误的圆形引用检测到的服务"routing.loader",路径:"routing.loader"。- 异常跟踪: 安装的软件包(作曲家信息): 有没有办法解决这个问题?谢谢