【问题标题】:Textures don't render纹理不渲染
【发布时间】:2015-01-03 05:28:32
【问题描述】:

我有以下代码,我尝试首先渲染背景,然后在它们之上渲染一些项目。唯一出来的就是背景。


Textures 是我创建的一个类的向量,它基本上只包含一个SDL_Texture* 和一个SDL_Rect*。纹理不是NULL,SDL_Rect 定位在屏幕上,我不知道为什么它们没有出现。

//Clear screen
SDL_RenderClear(renderer);

SDL_RenderCopy(renderer, background, NULL, NULL); //Render background

for (auto texture : textures) {
    if (texture.getXPos() && texture.getYPos()) { //Position, if applicable
        SDL_RenderCopy(renderer, texture.getTexture(), NULL, texture.getRect());
    }
    else {
        SDL_RenderCopy(renderer, texture.getTexture(), NULL, NULL);
    }
}

//Update screen
SDL_RenderPresent(renderer);

【问题讨论】:

    标签: c++ sdl sdl-2


    【解决方案1】:

    愚蠢的错误:当我使用 SDL_Surface 时,我会将 SDL_Rect 的 w 和 h 设置为 0,这显然不是它应该与 SDL_Texture 一起使用的方式。

    【讨论】:

    • 这并不愚蠢,只是 SDL_RenderCopy 的行为与 SDL_BlitSurface 的行为不匹配,尽管界面看起来很相似。这不是一个明显的变化,因此对于使用 SDL 1.2 的用户来说这是一个常见的错误。
    猜你喜欢
    • 1970-01-01
    • 2014-08-09
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    相关资源
    最近更新 更多