【问题标题】:Flipping a shaperenderer object in libGDX在 libGDX 中翻转 shaperenderer 对象
【发布时间】:2016-12-14 12:56:03
【问题描述】:

我正在翻转我的 libGDX 项目中的一个对象。同时我也想翻转它的形状渲染圆。我该怎么做? 这是我的 shaperenderer 代码:

    shapeRenderer.setProjectionMatrix(camera.projection);
    shapeRenderer.setTransformMatrix(camera.view);
    shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
   if (obsObj.isSpider())
            circle(shapeRenderer, ob.getCollisionCircle());
shapeRenderer.end();

和圆的方法是:

private void circle(ShapeRenderer renderer, Circle circle) {
    shapeRenderer.circle(circle.x, circle.y, circle.radius, 100);
}

我正在像这样翻转精灵对象..

obsSprite.setFlip(true,false);

【问题讨论】:

  • 如果没有一点解释性代码,将很难回答这个问题......您究竟是如何翻转对象以及如何使用 ShapeRenderer 绘制它的?您有不同的解决方法,或者手动翻转 ShapeRenderer 中使用的值,或者如果适用,您甚至可以通过操纵它使用的矩阵来翻转整个 ShapeRenderer。
  • 问题中包含的代码。谢谢。

标签: libgdx shape-rendering


【解决方案1】:

我尝试使用多边形进行形状渲染,而不是使用圆形/矩形形状渲染。 它适用于旋转和翻转。

【讨论】:

    【解决方案2】:

    你可以像这样使用变换矩阵:

    shapeRenderer.setProjectionMatrix(camera.combined);
    shapeRenderer.setTransformMatrix(...your transformation matrix...);
    

    camera.combined 包含相机投影和视图。 在您的情况下,您的转换矩阵可能是缩放矩阵(scaleX = -1 用于水平翻转和/或 scaleY = -1 用于垂直翻转)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多