2012-05-14 76 views
0

为什么不通过此代码让我向上或向左移动?SDL x和y移动

while(quit == false) 
    { 


    apply_surface(0,0, back,screen); 
    apply_surface(playerx,playery,player, screen); 


    SDL_Flip(screen); 

     //While there's an event to handle 
     while(SDL_PollEvent(&event)) 
     { 
      if(event.type == SDL_KEYDOWN) 
      { 
       switch(event.key.keysym.sym) 
       { 
       case SDLK_UP:playery=playery-10; 
       case SDLK_DOWN:playery=playery+10; 
       case SDLK_LEFT:playerx=playerx-10; 
       case SDLK_RIGHT:playerx=playerx+10; 
       } 
      }  

回答

3

您需要在switch每个case后使用break否则执行“落空”的下一行,有可能取消你的动作(实际上SDLK_UPSDLK_LEFT是在消除发生的那些)

+1

是的,确实有效ty(在我问之前,真的需要更加小心和阅读) – yorde