Visual Studio 2017空白窗口,无响应 我一直试图在Visual Studio 2017中创建一个简单的C++游戏,但我甚至连一个简单的黑屏都没有。窗户上是白色的,没有反应,有人能帮忙吗?我一直在学习Udemy上的一门免费课程,一直到现在都很有效。我的代码如下 #include <iostream> #include <SDL.h> #include <string> using namespace std; int main(int argc, char* argv[]) { const int screenWidth = 800; const int screenLength = 600; if (SDL_Init(SDL_INIT_VIDEO) < 0) { cout << "SDL init faliure" << endl; return 0; } SDL_Window *window = SDL_CreateWindow("Particle Fire", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, screenWidth, screenLength, SDL_WINDOW_SHOWN); SDL_Delay(100000); if (window == NULL) { SDL_Quit(); return 2; } SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC); SDL_Texture * texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STATIC, screenWidth, screenLength); if (renderer == NULL) { cout << "Could not produce renderer"; SDL_DestroyWindow(window); SDL_Quit(); return 3; } if (texture == NULL) { cout << "Could not produce texture"; SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 3; } Uint32 *buffer = new Uint32[screenWidth*screenLength]; memset(buffer, 0xFF, screenWidth*screenLength*sizeof(Uint32)); for (int i=0; i < screenWidth*screenLength; i++) { buffer[i = 0xFFFF0000]; } SDL_UpdateTexture(texture, NULL, buffer, screenWidth * sizeof(Uint32)); SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_RenderPresent(renderer); bool quit = false; SDL_UpdateTexture(texture, NULL, buffer, screenWidth * sizeof(Uint32)); SDL_RenderClear(renderer); SDL_RenderCopy(renderer,texture , NULL, NULL); SDL_RenderPresent(renderer); SDL_Event event; while (!quit) { while (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { quit = true; } } } delete buffer; SDL_DestroyTexture(texture); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); } #包括 #包括 #包括 使用名称空间std; int main(int argc,char*argv[]){ 常数int屏幕宽度=800; 常数int屏幕长度=600; if(SDL_Init(SDL_Init_视频)

Visual Studio 2017空白窗口,无响应 我一直试图在Visual Studio 2017中创建一个简单的C++游戏,但我甚至连一个简单的黑屏都没有。窗户上是白色的,没有反应,有人能帮忙吗?我一直在学习Udemy上的一门免费课程,一直到现在都很有效。我的代码如下 #include <iostream> #include <SDL.h> #include <string> using namespace std; int main(int argc, char* argv[]) { const int screenWidth = 800; const int screenLength = 600; if (SDL_Init(SDL_INIT_VIDEO) < 0) { cout << "SDL init faliure" << endl; return 0; } SDL_Window *window = SDL_CreateWindow("Particle Fire", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, screenWidth, screenLength, SDL_WINDOW_SHOWN); SDL_Delay(100000); if (window == NULL) { SDL_Quit(); return 2; } SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC); SDL_Texture * texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STATIC, screenWidth, screenLength); if (renderer == NULL) { cout << "Could not produce renderer"; SDL_DestroyWindow(window); SDL_Quit(); return 3; } if (texture == NULL) { cout << "Could not produce texture"; SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 3; } Uint32 *buffer = new Uint32[screenWidth*screenLength]; memset(buffer, 0xFF, screenWidth*screenLength*sizeof(Uint32)); for (int i=0; i < screenWidth*screenLength; i++) { buffer[i = 0xFFFF0000]; } SDL_UpdateTexture(texture, NULL, buffer, screenWidth * sizeof(Uint32)); SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_RenderPresent(renderer); bool quit = false; SDL_UpdateTexture(texture, NULL, buffer, screenWidth * sizeof(Uint32)); SDL_RenderClear(renderer); SDL_RenderCopy(renderer,texture , NULL, NULL); SDL_RenderPresent(renderer); SDL_Event event; while (!quit) { while (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { quit = true; } } } delete buffer; SDL_DestroyTexture(texture); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); } #包括 #包括 #包括 使用名称空间std; int main(int argc,char*argv[]){ 常数int屏幕宽度=800; 常数int屏幕长度=600; if(SDL_Init(SDL_Init_视频),c++,sdl,sdl-2,C++,Sdl,Sdl 2,另外,您需要将buffer[i=0xFFFF0000]更改为buffer[i]=0xFFFF0000。第一个只设置i并保持缓冲区不变。第二个使像素变黄。我不知道sdl,所以我很好奇:你真的需要所有的代码才能得到黑屏吗?如果真是这样,我肯定会使用一些东西else@tobi303它不是SDL,几乎所有的C++都是这样库。@tobi303 SDL是低级别的,因此需要大量的code@cdo256我知道qt,我需要在那里编写代码来获得一个窗口与此无关。SDL\u Delay()紧接着SDL\u Creat

另外,您需要将
buffer[i=0xFFFF0000]
更改为
buffer[i]=0xFFFF0000
。第一个只设置
i
并保持缓冲区不变。第二个使像素变黄。

我不知道sdl,所以我很好奇:你真的需要所有的代码才能得到黑屏吗?如果真是这样,我肯定会使用一些东西else@tobi303它不是SDL,几乎所有的C++都是这样库。@tobi303 SDL是低级别的,因此需要大量的code@cdo256我知道qt,我需要在那里编写代码来获得一个窗口与此无关。
SDL\u Delay()
紧接着
SDL\u CreateWindow()
的巨大延迟是怎么回事?