sdl2 中的矩形设置整个屏幕的颜色
Rectangle in sdl2 sets colour for entire screen
我知道 SO 上已经有这样的问题,但我是 SDL2 的新手,我看过一些绘制矩形的教程,我也在这里看过一些问题。使用下面的当前代码,我无法在 window 上绘制矩形,因为它没有出现 我还尝试在绘制矩形后清除 window 这只是设置整个 window到那种颜色。
#include <iostream>
#include <SDL2\SDL.h>
int main(int argc, char** argv){
SDL_Window* window;
window = SDL_CreateWindow("Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
SDL_Renderer* render;
render = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
bool close = false;
SDL_Event event;
while (close == false){
while (SDL_PollEvent(&event)){
if (event.type == SDL_QUIT){
close = true;
}
}
//set colour
SDL_SetRenderDrawColor(render, 255, 0, 0, 255);
SDL_RenderClear(render);
SDL_Rect rect;
rect.x, rect.y, rect.h, rect.w = 50, 50, 50, 50;
SDL_SetRenderDrawColor(render, 0, 0, 255, 255);
SDL_RenderFillRect(render, &rect);
//SDL_RenderClear(render); <-- If this is uncommented it clears the screen to blue.
SDL_RenderPresent(render);
}
SDL_DestroyWindow(window);
SDL_DestroyRenderer(render);
SDL_Quit();
}
这并不是要在红色 window 上绘制蓝色矩形,但我只得到红色 window 并清除渲染器只设置 window 蓝色。为什么这个矩形不绘制?如果是绘图那么它的颜色为什么没有改变所以它不与背景融合。
我已经使用这些问题来帮助我走到这一步:
How to draw a rectangle in SDL 2 and what exactly is a renderer
SDL2 Wont draw Rectangles Correctly
https://dev.to/noah11012/using-sdl2-drawing-rectangles-3hc2
您的问题似乎与 rect.x, rect.y, rect.h, rect.w = 50, 50, 50, 50;
有关
当我把它改成
rect.x = 50;
rect.y = 50;
rect.h = 50;
rect.w = 50;
程序有效
我知道 SO 上已经有这样的问题,但我是 SDL2 的新手,我看过一些绘制矩形的教程,我也在这里看过一些问题。使用下面的当前代码,我无法在 window 上绘制矩形,因为它没有出现 我还尝试在绘制矩形后清除 window 这只是设置整个 window到那种颜色。
#include <iostream>
#include <SDL2\SDL.h>
int main(int argc, char** argv){
SDL_Window* window;
window = SDL_CreateWindow("Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
SDL_Renderer* render;
render = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
bool close = false;
SDL_Event event;
while (close == false){
while (SDL_PollEvent(&event)){
if (event.type == SDL_QUIT){
close = true;
}
}
//set colour
SDL_SetRenderDrawColor(render, 255, 0, 0, 255);
SDL_RenderClear(render);
SDL_Rect rect;
rect.x, rect.y, rect.h, rect.w = 50, 50, 50, 50;
SDL_SetRenderDrawColor(render, 0, 0, 255, 255);
SDL_RenderFillRect(render, &rect);
//SDL_RenderClear(render); <-- If this is uncommented it clears the screen to blue.
SDL_RenderPresent(render);
}
SDL_DestroyWindow(window);
SDL_DestroyRenderer(render);
SDL_Quit();
}
这并不是要在红色 window 上绘制蓝色矩形,但我只得到红色 window 并清除渲染器只设置 window 蓝色。为什么这个矩形不绘制?如果是绘图那么它的颜色为什么没有改变所以它不与背景融合。
我已经使用这些问题来帮助我走到这一步: How to draw a rectangle in SDL 2 and what exactly is a renderer SDL2 Wont draw Rectangles Correctly https://dev.to/noah11012/using-sdl2-drawing-rectangles-3hc2
您的问题似乎与 rect.x, rect.y, rect.h, rect.w = 50, 50, 50, 50;
当我把它改成
rect.x = 50;
rect.y = 50;
rect.h = 50;
rect.w = 50;
程序有效