【问题标题】:rotating a sprite image in SDL在 SDL 中旋转精灵图像
【发布时间】:2014-06-12 03:04:34
【问题描述】:

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

我已经完成了所有设置。我的 Sprite 有不同的类,它们使用 SDL_QueryTexture 加载我所有的精灵纹理。我有一个主要的播放器类,它使用精灵类来绘制。我有另一个主类,它运行我的游戏循环和绘制循环,它再次引用我的播放器和精灵。

所以到目前为止,我一切正常。我可以通过鼠标点击屏幕来移动我的播放器。现在我想做的基本上是在我的播放器移动的方向上旋转我的播放器。因此,如果玩家方向是左,我想将我的玩家精灵向左旋转 90 度,以此类推其他方向。 sdl 纹理没有旋转属性,所以我有点卡在这一点上。

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

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

【问题讨论】:

标签: c++ rotation sdl-2


【解决方案1】:

正如 Benjamin 在他的评论中指出的那样,您用于渲染精灵的方法的签名

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) 为参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    相关资源
    最近更新 更多