2015-11-29 84 views
-1

我一直在嘗試通過sdl庫做一個簡單的乒乓球遊戲,現在我面臨一個問題! 遊戲有2個球員,一個球拍通過上下鍵移動,另一個通過s和w鍵移動。 問題是我用完了鑰匙,兩個球拍都移動了,我不知道問題出在哪裏。考慮到這個規則,這兩個球員必須能夠同時移動他們的球拍。 我在Ubuntu上編譯這段代碼。 這將是完美的,如果有人幫助我! 在此先感謝!乒乓sdl遊戲球拍移動

#include <iostream> 
#include "SDL/SDL.h" 
#include <SDL/SDL_gfxPrimitives.h> 

using namespace std; 


int main() 
{ 
    SDL_Surface* screen = SDL_SetVideoMode(1200, 800 ,32, 0); 

     int i=0,j = 0; 
     while(true) 
     { 
     boxRGBA(screen, 1000, 200+j, 1050, 350+j, 0, 0, 0, 255); 
     SDL_Event event; 
       if(!SDL_PollEvent(&event)); 
       { 
         if(event.type == SDL_QUIT) 
           return 0; 
         if(event.type == SDL_KEYDOWN) 
       { 
           if(event.key.keysym.sym == SDLK_UP) 
             j += -5; 
           if(event.key.keysym.sym == SDLK_DOWN) 
             j += 5; 
         } 
       } 

boxRGBA(screen, 1000, 200+j, 1050, 350+j, 255, 50, 0, 255); 
     SDL_Flip(screen); 
     SDL_Delay(20); 

boxRGBA(screen, 100, 200+j, 50, 350+j, 0, 0, 0, 255); 
     SDL_Event event2; 
if(!SDL_PollEvent(&event2)); 
       { 
         if(event2.type == SDL_QUIT) 
           return 0; 
         if(event2.type == SDL_KEYDOWN) 
       { 
           if(event2.key.keysym.sym == SDLK_w) 
             j += -5; 
           if(event2.key.keysym.sym == SDLK_s) 
             j += 5; 
         } 
       } 
boxRGBA(screen, 100, 200+j, 50, 350+j, 0,0, 255, 255); 
     SDL_Flip(screen); 
     SDL_Delay(20); 
    } 


    ////////////////////////////////////////////////////////// 

    SDL_Delay(2000); 
    return 0; 
} 
+0

這個遊戲有2個玩家,但是你在這兩個事件中都使用'j'作爲變量,是嗎?另外,'i'沒有在任何地方使用。 –

+0

又一個「複製/粘貼」錯誤的創建。 – OznOg

回答

0

支架位置是我的寵物狗。但是,在移植到SO時可能會對其進行修改。

您初始化了整數i和j,但只使用了變量j。