【问题标题】:LibGDX Rotating a sprite at each iterationLibGDX 在每次迭代时旋转一个精灵
【发布时间】:2015-04-28 16:24:17
【问题描述】:

我正在使用函数

SpriteBatch.draw(region, x, y, originX, originY, width, height, scaleX, scaleY, rotation);

我称之为 screenSpriteBatchimg 作为 Sprite,变量 dir 以弧度表示:

screen.draw(img, x, y, 0, 0, img.getWidth(), img.getHeight(), 0.8f, 0.8f, dir*180/((float) Math.PI));

我得到的是围绕枢轴旋转,而不是图像的中心,也不是保持该中心的坐标 x,y。

我已经尝试过使用 sprite 函数 centerOrigin 和 setCenter 并且它们都没有改变我想要的。

【问题讨论】:

标签: rotation libgdx sprite


【解决方案1】:

在精灵img 上设置所有缩放、位置和旋转,然后调用img.draw(spriteBatch); 而不是spriteBatch.draw(...)。您调用的spriteBatch.draw(...) 方法不知道您在精灵上设置的任何参数,例如在其上调用setCenter,因此您必须从精灵中绘制它。

【讨论】:

    【解决方案2】:

    如果您希望图像围绕其中心旋转,则表示对象中心的 X 和 Y 坐标应指定为 originX 和 originY。

    screen.draw(img, x, y, img.getWidth() / 2, img.getHeight() / 2, img.getWidth(), img.getHeight(), 0.8f, 0.8f, dir*180/((float) Math.PI));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多