我正在使用c ++ SDL 2.0制作2D游戏。
我得到了一切设置。我的Sprite有不同的类,它使用SDL_QueryTexture
加载我的所有精灵纹理。我有一个主要的玩家类,它使用精灵类来绘制。我有另一个主要类,它运行我的游戏循环和绘制循环,它再次引用我的玩家和精灵。
所以到目前为止我的一切工作都很好。我可以在屏幕上点击鼠标移动我的播放器。现在我想要做的就是将我的播放器按照它移动的方向旋转。因此,如果剩下玩家方向,我想将我的玩家精灵向左旋转90度,依此类推其他方向。 sdl纹理没有旋转属性,所以我有点卡在这一点上。
问题:这可以使用sin和cos角度来实现吗?
我尝试过这样做,但它不起作用。任何帮助在这里将不胜感激。
答案 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)作为参考。