2013-12-14 84 views
0

下面是一些pygame代码,它工作正常,除了移动精灵,我不得不反复点击箭头键,有没有办法让精灵按住箭头键移动?下面是我的代码:雪碧在pygame中滞后

while True: #main game loop 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 
     elif event.type == KEYUP: 
      if event.key == K_RIGHT: 
       LionCubX+= 10 
      elif event.key == K_LEFT: 
       LionCubX-= 10 
      elif event.key == K_UP: 
       LionCubY-= 10 
      elif event.key == K_DOWN: 
       LionCubY+= 10 
     DISPLAYSURF.fill(GREEN) 
     DISPLAYSURF.blit(LionCubImg,(LionCubX,LionCubY)) 
    pygame.display.update() 
+0

我对pygame了解不多,但问题可能是您使用'KEYUP',这意味着您必须释放密钥才能导致移动。 – Aleph

回答

0

的问题,我可以在这里看到的是,你检查KEYUP类型的事件。这意味着只有在您释放密钥时才能执行您的代码。因此,改变

elif event.type == KEYUP: 

elif event.type == KEYDOWN: 

另一种可能性是,你没有设置按键重复:

pygame.key.set_repeat(1, 30) 

将这个游戏主循环之前激活重复按键。另见the docs

0

的问题是你移动你的精灵只有当键被按下并释放KEYUP。您需要将精灵移动到钥匙状态KEYDOWN

更改此:

elif event.type == KEYUP: 

要:

elif event.type == KEYDOWN: