使用SDL2放大/缩小场景

时间:2017-05-19 22:04:27

标签: c++ sdl sdl-2

我是SDL2的新手,我正在开发一个用C ++编写的小型2D游戏。我正在试图弄清楚如何使用这个库进行一些简单的操作,主要是因为我想从这次经历中学到一些新东西。

我有很多元素,其中一些是可渲染的项目,是场景的一部分,而另一些则是HUD项目。我面临的问题是我想放大和缩小场景而不影响HUD元素 这就是我接触它的方式:

  • 我使用SDL_CreateWindowAndRenderer创建了默认窗口和渲染器。
  • 我使用SDL_CreateTexture从渲染器中创建了一个纹理,并将纹理访问模式设置为SDL_TEXTUREACCESS_TARGET
  • 最初我通过渲染器将所有场景实体复制到目标纹理,即我使用SDL_SetRenderTarget将渲染上下文设置为目标纹理,然后复制纹理。
  • 我将渲染器设置为默认上下文,并使用SDL_RenderCopy复制目标纹理。
  • 最后,我将所有HUD实体复制到渲染器(即直接复制到默认上下文)。

到目前为止一切顺利,一切都按预期工作,当通过SDL_RenderCopy将目标纹理复制到渲染器时,我可以通过使用正确的源和目标矩形轻松放大和缩小场景。

我的问题是:这是一种明智的做法还是有更好的解决办法呢? 它工作得很好,这很好,但它看起来有点棘手,我并不完全相信。

0 个答案:

没有答案