2015-01-02 37 views
0

因此,這裏是我的代碼:C++/SDL,一切都顯示爲白色

#include "stdafx.h" 


int main(int argc, char *argv[]) 
{ 
bool quit = false; 

SDL_Init(SDL_INIT_EVERYTHING); 

SDL_Window* window = NULL; 

window = SDL_CreateWindow("RPG GAME", 100, 100, 600, 400, SDL_WINDOW_SHOWN); 
if (window = NULL) 
{ 
    std::cout << "Window couldn't be created" << std::endl; 

    return 0; 

} 
SDL_Renderer* renderer = NULL; 

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

SDL_Event* mainEvent = new SDL_Event(); 
SDL_Texture* grass_image = NULL; 
grass_image = IMG_LoadTexture(renderer, "grass.bmp"); 
SDL_Rect grass_rect; 
grass_rect.x = 10; 
grass_rect.y = 50; 
grass_rect.w = 250; 
grass_rect.h = 250; 


while (!quit && mainEvent->type != SDL_QUIT) 
{ 
    SDL_PollEvent(mainEvent); 
    SDL_RenderClear(renderer); 
    //Cia darom 
    SDL_RenderCopy(renderer, grass_image, NULL, &grass_rect); 


    SDL_RenderPresent(renderer); 

} 
SDL_DestroyWindow(window); 
SDL_DestroyRenderer(renderer); 
delete mainEvent; 

return 0; 

} 

每當我運行應用程序,窗口彈出,但它是全白,我最近成立了一個雙顯示器,現在有玩GIF時遇到一些問題,但我認爲這並不重要。謝謝!

+0

咦?我很確定我設置了SDL_Texture * grass_image = NULL; – solid2k13

回答

0

您需要區分'='和'=='。作爲

if (window = NULL) // bad news cause you just nuked window 

if (window == NULL) // is window null? 
+0

說實話,儘管這是正確的,但如果發佈的代碼是他正在使用的實際代碼,該應用程序根本無法運行,它會在調用「SDL_CreateRenderer」時崩潰 – Zammalad

+0

@Zammalad - 它可能返回null爲渲染器值而不是崩潰。請注意,發佈的代碼不檢查該情況,所以程序繼續執行,結果不佳。 – maurice