2016-09-27 22 views
1
#include <SDL.h> 
#include <SDL_image.h> 
#include <SDL_mixer.h> 
#include <iostream> 
int main(int argc, char* args[]) 
{ 
    SDL_Init(SDL_INIT_VIDEO); 
    SDL_Window *window; 
    window = SDL_CreateWindow("Titlu", 
     100, 
     100, 
     600, 
     400, 
     SDL_WINDOW_RESIZABLE 
     ); 
    SDL_Renderer* renderer = nullptr; 
    SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); 
    int p = 0; 
    SDL_Event* mainEvent = new SDL_Event(); 
    SDL_Texture* grass_image = nullptr; 

    grass_image = IMG_LoadTexture(renderer,"grass.bmp"); 
    if (grass_image == NULL) 
     std::cout << "FAILED"; 
    SDL_Rect grass_rect; 
    grass_rect.x = 10; 
    grass_rect.y = 50; 
    grass_rect.w = 250; 
     grass_rect.h = 250; 
    while (!p && mainEvent->type != SDL_QUIT) 
    { 
     SDL_PollEvent(mainEvent); 
     SDL_RenderClear(renderer); 
     SDL_RenderCopy(renderer,grass_image,NULL,&grass_rect); 
     SDL_RenderPresent(renderer); 
    } 
    SDL_DestroyWindow(window); 
    SDL_DestroyRenderer(renderer); 
    delete mainEvent; 


    return 0; 

} 

grass_image = IMG_LoadTexture(renderer、 "grass.bmp");動作せず、NULLを返します。画像のパスが良好です。SDL2画像の読み込みウィンドウ10

もし私が何か間違っていたり、私のウィンドウズ10または私のビジュアルスタジオ2015アップデート3との互換性の問題を教えてください。 私はそれを実行すると私のウィンドウは黒ではなく白です。

+0

問題文が単純に「動作しません」の場合、解決策を提示することは困難です。実際の結果とどのように違うのか、そしてどのようなことが起こるのかをより完全に説明するために質問を編集してください。何が良い説明になるかについてのヒントについては、[ask]を参照してください。 –

+1

bmp形式には 'SDL_LoadBMP'を使用できます。あなたがロードしたいフォーマットの 'IMG_Init'はどこにありますか?たとえば、作業ディレクトリを確認してください。 [GetCurrentDirectory](https://msdn.microsoft.com/en-us/library/windows/desktop/aa364934(v = vs.85).aspx)。それがあなたに与えるエラーを見てください( 'IMG_GetError')。 – keltar

答えて

1

rendererがNULLです。

SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);