Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对';SDL#U UpperBlit和#x27; 我对C++比较陌生,所以尽管我在其他C语言中有过这样的经验,但这可能只是个简单的错误。这是我的密码: #include <iostream> #include <SDL2/SDL.h> SDL_Window *window; SDL_Surface *windowSurface; SDL_Surface *image[3]; SDL_Surface *currentImage; int close(); SDL_Rect gRect(int, int, int, int); //for method described below int main(int argc, char *argv[]){ SDL_Init(SDL_INIT_VIDEO); window = SDL_CreateWindow("Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 500, 500, SDL_WINDOW_SHOWN); windowSurface = SDL_GetWindowSurface(window); image[0] = SDL_LoadBMP("filepath/img.bmp"); image[1] = SDL_LoadBMP("filepath/img2.bmp"); image[2] = SDL_LoadBMP("filepath/img3.bmp"); currentImage = image[0]; bool done = false; while(!done){ SDL_Rect rec; rec.x = 100; rec.y = 100; rec.h = 100; rec.w = 100; SDL_BlitSurface(currentImage, NULL, windowSurface, rec); SDL_UpdateWindowSurface(window); } return close(); } int close(){ for(int i = 0; i < 3; i++){ SDL_FreeSurface(image[i]); image[i] = nullptr; } currentImage = nullptr; window = nullptr; SDL_DestroyWindow(window); SDL_Quit(); return 0; }_C++_C_Loops_Pointers_Sdl - Fatal编程技术网

对';SDL#U UpperBlit和#x27; 我对C++比较陌生,所以尽管我在其他C语言中有过这样的经验,但这可能只是个简单的错误。这是我的密码: #include <iostream> #include <SDL2/SDL.h> SDL_Window *window; SDL_Surface *windowSurface; SDL_Surface *image[3]; SDL_Surface *currentImage; int close(); SDL_Rect gRect(int, int, int, int); //for method described below int main(int argc, char *argv[]){ SDL_Init(SDL_INIT_VIDEO); window = SDL_CreateWindow("Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 500, 500, SDL_WINDOW_SHOWN); windowSurface = SDL_GetWindowSurface(window); image[0] = SDL_LoadBMP("filepath/img.bmp"); image[1] = SDL_LoadBMP("filepath/img2.bmp"); image[2] = SDL_LoadBMP("filepath/img3.bmp"); currentImage = image[0]; bool done = false; while(!done){ SDL_Rect rec; rec.x = 100; rec.y = 100; rec.h = 100; rec.w = 100; SDL_BlitSurface(currentImage, NULL, windowSurface, rec); SDL_UpdateWindowSurface(window); } return close(); } int close(){ for(int i = 0; i < 3; i++){ SDL_FreeSurface(image[i]); image[i] = nullptr; } currentImage = nullptr; window = nullptr; SDL_DestroyWindow(window); SDL_Quit(); return 0; }

对';SDL#U UpperBlit和#x27; 我对C++比较陌生,所以尽管我在其他C语言中有过这样的经验,但这可能只是个简单的错误。这是我的密码: #include <iostream> #include <SDL2/SDL.h> SDL_Window *window; SDL_Surface *windowSurface; SDL_Surface *image[3]; SDL_Surface *currentImage; int close(); SDL_Rect gRect(int, int, int, int); //for method described below int main(int argc, char *argv[]){ SDL_Init(SDL_INIT_VIDEO); window = SDL_CreateWindow("Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 500, 500, SDL_WINDOW_SHOWN); windowSurface = SDL_GetWindowSurface(window); image[0] = SDL_LoadBMP("filepath/img.bmp"); image[1] = SDL_LoadBMP("filepath/img2.bmp"); image[2] = SDL_LoadBMP("filepath/img3.bmp"); currentImage = image[0]; bool done = false; while(!done){ SDL_Rect rec; rec.x = 100; rec.y = 100; rec.h = 100; rec.w = 100; SDL_BlitSurface(currentImage, NULL, windowSurface, rec); SDL_UpdateWindowSurface(window); } return close(); } int close(){ for(int i = 0; i < 3; i++){ SDL_FreeSurface(image[i]); image[i] = nullptr; } currentImage = nullptr; window = nullptr; SDL_DestroyWindow(window); SDL_Quit(); return 0; },c++,c,loops,pointers,sdl,C++,C,Loops,Pointers,Sdl,并将SDL_BlitSurface调用更改为 SDL_BlitSurface(currentImage, NULL, windowSurface, gRect(100, 100, 100, 100)); 这并不能解决问题,出现相同的错误。如果我能在这方面得到任何帮助,我将不胜感激!谢谢 (可选)PS:我还希望您能帮助我将“image[0]”、“image[1]”和“image[2]”声明放入for循环中。我试过了,但在类型和连接方面遇到了一些问题,所以如果有人知道我如何做到这一点,请告诉我。函

并将SDL_BlitSurface调用更改为

SDL_BlitSurface(currentImage, NULL, windowSurface, gRect(100, 100, 100, 100));
这并不能解决问题,出现相同的错误。如果我能在这方面得到任何帮助,我将不胜感激!谢谢

(可选)PS:我还希望您能帮助我将“image[0]”、“image[1]”和“image[2]”声明放入for循环中。我试过了,但在类型和连接方面遇到了一些问题,所以如果有人知道我如何做到这一点,请告诉我。

函数声明非常有用

int SDL_BlitSurface(SDL_Surface*    src,
                    const SDL_Rect* srcrect,
                    SDL_Surface*    dst,
                    SDL_Rect*       dstrect)
你的代码片段

    SDL_Rect rec;
    rec.x = 100;
    rec.y = 100;
    rec.h = 100;
    rec.w = 100;
    SDL_BlitSurface(currentImage, NULL, windowSurface, rec);
rec
作为最后一个参数传递,其类型为
SDL_Rect
,但应为
SDL_Rect*
。例如,
SDL_BlitSurface(currentImage、NULL、windowSurface和rec)


我也建议不要使用<代码>关闭<代码>作为函数名,因为它是问题(对于C++来说,它没有名字,但是仍然),谢谢。这很有帮助!

    SDL_Rect rec;
    rec.x = 100;
    rec.y = 100;
    rec.h = 100;
    rec.w = 100;
    SDL_BlitSurface(currentImage, NULL, windowSurface, rec);