在SDL中旋转精灵图像

时间:2014-06-12 03:04:34

标签: c++ rotation sdl-2

我正在使用c ++ SDL 2.0制作2D游戏。

我得到了一切设置。我的Sprite有不同的类,它使用SDL_QueryTexture加载我的所有精灵纹理。我有一个主要的玩家类,它使用精灵类来绘制。我有另一个主要类,它运行我的游戏循环和绘制循环,它再次引用我的玩家和精灵。

所以到目前为止我的一切工作都很好。我可以在屏幕上点击鼠标移动我的播放器。现在我想要做的就是将我的播放器按照它移动的方向旋转。因此,如果剩下玩家方向,我想将我的玩家精灵向左旋转90度,依此类推其他方向。 sdl纹理没有旋转属性,所以我有点卡在这一点上。

问题:这可以使用sin和cos角度来实现吗?

我尝试过这样做,但它不起作用。任何帮助在这里将不胜感激。

1 个答案:

答案 0 :(得分:1)

正如本杰明在评论中指出的那样,你用于渲染精灵的方法的签名

int SDL_RenderCopyEx(SDL_Renderer*          renderer,
                 SDL_Texture*           texture,
                 const SDL_Rect*        srcrect,
                 const SDL_Rect*        dstrect,
                 const double           angle,
                 const SDL_Point*       center,
                 const SDL_RendererFlip flip)

为您提供两个参数,一个用于设置轴心点,另一个用于设置旋转角度。请注意,枢轴点将精灵的(0,0)作为参考。