2015-02-08 57 views
0

如果鼠标不在窗口内移动,或者应该运行动画时没有按下任何按键,PollEvent将被忽略。这里的代码:PollEvent在没有鼠标移动的情况下无法正常工作[SDL]

SDL_Init(SDL_INIT_EVERYTHING); 
    int imgFlags = IMG_INIT_PNG | IMG_INIT_JPG; 
    if (IMG_Init(imgFlags) != imgFlags) 
    { 
     std::cout << IMG_GetError() << std::endl; 
    } 
    window = SDL_CreateWindow("NRG", 200, 200, 800, 600, SDL_WINDOW_SHOWN); 
    renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED| SDL_RENDERER_PRESENTVSYNC); 


    isRunning = true; 
    while (isRunning) 
    { 
     while (SDL_PollEvent(&ev)) 
     { 
      heroImg = LoadTxt("image.png", renderer); 
      SDL_QueryTexture(heroImg, NULL, NULL, &textureWidth, &textureHeight); 
      frameWidth = textureWidth/3; 
      frameHeight = textureHeight/4; 
      heroRct.x = 0; 
      heroRct.y = 0; 
      heroRct.h = frameHeight; 
      heroRct.w = frameWidth; 
      frameTime++; 
      if (60/frameTime == 4) 
      { 
       frameTime = 0; 
       heroRct.x += frameWidth; 
       if (heroRct.x >= textureWidth) 
        heroRct.x = 0; 
      } 
      SDL_RenderClear(renderer); 
      SDL_RenderCopy(renderer, heroImg, &heroRct, NULL); 
      SDL_RenderPresent(renderer); 
     } 
    } 
    SDL_DestroyRenderer(renderer); 
    SDL_DestroyWindow(window); 
    window = NULL; 
    windowSurface = NULL; 
    renderer = NULL; 
    SDL_Quit(); 

其他的东西,如SDL_Event ev;包括在.h文件中

回答

相关问题