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

如何通过draw方法旋转sprite

符修杰
2023-03-14

我在任何地方都没有找到这个问题的答案,所以我们走吧。

  1. 我所期望的:

我想渲染火箭。火箭从给定的起始点以评估的角度飞行。我是这样评估angle的:

getVelocity().angle() - 90f

我的代码:

public static void drawRotatedTex(SpriteBatch pmRenderer, TextureRegion pmTex, float pmPosX, float pmPosY, float pmAngle)
{
    pmRenderer.begin();     
    pmRenderer.draw(
            pmTex, pmPosX, pmPosY, -pmTex.getRegionWidth()/2, pmTex.getRegionHeight(), pmTex.getRegionWidth(), pmTex.getRegionHeight(), 1f, 1f, pmAngle);
    pmRenderer.end();
}

结果:

这是碰撞的时刻。正如我们所看到的,坐标相对于火箭是偏移的。

@Override
public void render(Renderer pmRenderer, float pmX, float pmY) {
    SpriteBatch lvSpritebatch = pmRenderer.getSpriteBatch();
    Sprite lvSprite = null;

    if(mIsExploding)
    {
        if((lvSprite = mExplosion.getTexture()) != null)
        {
            lvSpritebatch.begin();
            lvSpritebatch.draw(lvSprite, pmX + lvSprite.getWidth()/2, pmY - lvSprite.getHeight()/2);
            lvSpritebatch.end();
        }
    }
    else
    {
        lvSprite = mAnimation.getTexture();
        RendererTools.drawRotatedTex(lvSpritebatch,lvSprite,pmX,pmY,getVelocity().angle() - 90f);
    }
}

共有1个答案

鲁阳焱
2023-03-14

不是很清楚你在问什么,如果只是关于移动原点,你就不需要那么多文本了。不管怎样,我会试一试的。

如果您想要完成您在图片中所拥有的内容,您可以像这样设置您的精灵:

sprite.setOrigin(s.getWidth()/2, s.getHeight()); //Centers sprite on top of image.

如果我现在在draw方法中旋转它,它将围绕顶部中心旋转。

sprite.rotate(5);
sprite.draw(batch);
 类似资料:
  • 问题内容: 我想在Oracle 11g中旋转一个表。枢纽选项需要汇总。这是我的原始表: 旋转后,表格应如下所示: 现在,如您所见,分组应该在项目列上进行。无需折叠或计算值。只需旋转即可。那么,枢轴选择正确的事情了吗? 问题答案: 是的,我想是这样。使用汇总很容易进行这样的枢轴操作: 否则,您必须在max聚合内执行case语句。像这样: 这几乎和做。但我宁愿做在..

  • 问题内容: 我想-使用Python和Qt4– 旋转QPushButton(或至少它的文本),使其可以垂直站立。我在网上看过一些文档,但是我从中没多大意义- 它在C语言中,而且我是C文盲。 根据我的阅读,需要重新实现paintEvent()处理程序,实例化和旋转QPainter()。但是我不知道怎么为我只需要的一个QString或QPushButton做到这一点。我假设QPaintEvent会像信号

  • 这是期望的输入和期望的输出。我不熟悉SQL或Presto中使用的术语,文档似乎指向使用,但我认为这里的问题是动态创建列,但我很好奇在列已知且有限的情况下是否可以这样做。 则成为: 我能得到的最接近的方法是使用获取一组,可以在输出中一次提取一个。然而,理想的解决方案是不必显式列出最终要输出的每个,而是分解或滚动出的所有键:

  • 使用数学时,似乎存在某种计算故障。atan2()计算角度,然后使用批处理在纹理旋转中使用该角度。draw()。系统。已使用out,并且已确认数学。atan2给出了错误的角度。 代码: 传入的两个变量,和是鼠标的和坐标,由和 纹理,的绘制方式如下: 其中是纹理的宽度,是纹理高度。 可以观察到,当鼠标直接在玩家上方时,角度计算为-148。当鼠标围绕玩家旋转时,所有角度的角度都是错误的。 问题是:我用来

  • 基本上,我有一个接口形状,它具有和方法。绘制形状的每个类都实现了这一点。还有一个类包含这些形状类的。然后有一个单独的类包含我的JFrame。我有一个“动画”按钮,它调用中的所有方法。

  • 问题内容: 我对Java没有太多的经验。我不确定这个问题是否很愚蠢,但是我需要从Firebase实时数据库中获取一个用户名,并通过此方法返回该名称。因此,我想出了如何获得该值,但是我不明白如何通过此方法返回它。最好的方法是什么? 问题答案: 这是异步Web API的经典问题。您现在无法返回尚未加载的内容。换句话说,您不能简单地创建一个全局变量并在onDataChange()方法外部使用它,因为它将