【问题标题】:Drawing circles surrounding a texture using libgdx使用 libgdx 围绕纹理绘制圆圈
【发布时间】:2015-02-20 12:37:12
【问题描述】:

我是 libgdx 的新手,我正在开发一个简单的游戏,其中包含多个从屏幕上掉下来的物品(水果、球、花等)。 目标是将它们全部扔到屏幕上的某个位置。 这些对象相互反弹,以及在屏幕上散布的障碍物上反弹。 为了对执行反弹所涉及的物理进行编程,我用“碰撞”圆圈分隔每个项目。 由于我是使用 libgdx 的新手,因此我很难将圆圈放在正确的位置(在每个项目的纹理上)并相应地移动它们。 有没有办法调试它?我的意思是,有没有办法显示每个纹理周围的每个圆圈,以证实它是否定位正确? 我尝试使用 ShapeRenderer 和 Pixmap 失败了……知道吗?谢谢

【问题讨论】:

  • Edit你的问题
  • 不确定我是否理解你,但是对于每个纹理,你可以读取宽度和高度,如果你将它们分成一半,你会得到纹理(和圆)中心。如果您使用勾股定理,您可以轻松计算圆直径。此外,如果您想旋转这些纹理,您可以将旋转点设置为您计算的那些中心坐标,以便对象保持在圆圈中并围绕中心旋转。
  • 看看ShapeRenderer。它的工作方式有点像 SpriteBatch,但您可以使用它在您的 sprite 上绘制调试形状。
  • 我可以解决我的问题。我已使用 ShapeRenderer 绘制形状,而无需使用 spriteBach 嵌套调用。那是我的第一个问题。非常感谢!

标签: libgdx textures geometry


【解决方案1】:

我希望我理解了你的问题,但是如果你使用的是 Box2D 物理并且你已经正确地创建了物理对象,我认为你应该检查 Box2DDebugRenderer。 Box2DDebugRenderer 将对象的物理形状渲染到您的屏幕上。在 Github 的 Extensions->Physics->Box2D 下的 LibGDX 开发人员指南中有更多关于 Box2DDebugRenderer 和其他内容的信息。

【讨论】:

    【解决方案2】:

    这是我的解决方案:

    game.batch.begin();
    // draw...
    game.batch.end();
    
    game.shapeRenderer.setProjectionMatrix(gameCam.combined);
    game.shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
    game.shapeRenderer.setColor(1, 1, 0, 1);
    
    // draw boundingRectangle's sprite: shapeRenderer.rect(getBoundingRectangle().x, getBoundingRectangle().y, getBoundingRectangle().width, getBoundingRectangle().height);
    
    game.shapeRenderer.end();
    

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 2013-06-19
      • 1970-01-01
      • 2016-04-15
      • 2015-07-21
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      相关资源
      最近更新 更多