c++ - SDL2 无法正确绘制矩形

标签 c++ game-engine sdl-2

我正在创建一个窗口并绘制一个框,但出于某种原因,屏幕没有绘制一个框,而是更改为该颜色。我附上了一张窗口外观的照片,我将附上源代码。

#include <iostream>
#include <SDL.h>
#undef main

using namespace std;
int SCREEN_WIDTH = 650;
int SCREEN_HEIGHT = 650;

int main() {
    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;

        return 1;
    }

    SDL_Window *window = SDL_CreateWindow("Cells", 100, 100, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
    if (window == nullptr) {
        std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;

        SDL_Quit();

        return 1;
    }

    SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if (renderer == nullptr) {
        std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;

        SDL_DestroyWindow(window);
        SDL_Quit();

        return 1;
    }

    SDL_Event event;
    bool quit = false;

    while (!quit) {
        while (SDL_PollEvent(&event)) {
            if (event.type == SDL_QUIT) {
                quit = true;
            }
        }

        SDL_RenderClear(renderer);
        // renderTextures
        SDL_Rect fillRect = { 122, 122, 122, 122};
        SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
        SDL_RenderFillRect(renderer, &fillRect);
        SDL_RenderPresent(renderer);
    }

    return 0;
}

Doesn't Draw Correctly

最佳答案

SDL_RenderClear使用您修改的当前绘制颜色,因此您的透明颜色和矩形颜色相同。使用例如设置不同的清晰颜色(您想要在没有绘制其他任何东西的背景中使用的颜色)

    SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
    SDL_RenderClear(renderer);
    // now draw your rectangles with different col

关于c++ - SDL2 无法正确绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52490937/

相关文章:

c++ - Visual Studio 2019 C++ 对概念的支持 - 编译成功,但出现错误 : Why?

c++ - 使用依赖于 "this"c++ 的比较结构初始化一个集合

c++ - 具有两个线程的 STL 队列(生产者、消费者)

mongodb - 社交游戏 map 图 block 存储

c++ - "undefined reference to ` FT_Load_Glyph '"和其他使用 CMAKE 的 SDL2_ttf 函数

c++ - SDL_SetWindowSize是否触发窗口事件?

c++ - 删除冗余模板类型

3d - 用于教学目的的良好游戏引擎

ios - 如何安全地使渲染与更新模型脱钩?

c++ - 将 SDL2 与 CMake 一起使用