2014-10-19 28 views
2

請記住,在此之前有更多的代碼,和其他進口鏈接到這裏,但這並不是我的問題。爲什麼我的event.type == pygame.K_不工作?

我想知道爲什麼我的event.type == pygame.K_RIGHT命令不起作用。 當我運行代碼時,它說沒有錯誤,但玩家不能移動。

pygame.mouse.set_cursor(*pygame.cursors.diamond) 

movex, movey = 0,0 

while gameLoop: 


for event in pygame.event.get(): 

    if (event.type==pygame.QUIT): 

     gameLoop=False 

    if (event.type==pygame.KEYDOWN): 

     if (event.type==pygame.K_d): 

      movex=5 

     elif (event.type==pygame.K_a) : 

      movex=-5 

    if (event.type==pygame.KEYUP): 

     if (event.type==pygame.K_RIGHT): 

      movex=0 

     elif (event.type==pygame.K_LEFT) : 

      movex=0 

window.fill (blue) 
player.render(window) 

player.x+=movex 

clock.tick(60) 
pygame.display.flip() 

pygame.quit()

回答

0
if (event.type==pygame.K_RIGHT): 
    movex=0 

你提出的Movex = 0,因此球員不動。你需要改變它。將其更改爲movex = 1。

1

一旦檢測到KEYDOWNKEYUP事件,您需要檢查event.key屬性而不是event.type以瞭解哪個鍵被按下。類似這樣的:

for event in pygame.event.get(): 

    # The KEYDOWN event was posted 
    if event.type == pygame.KEYDOWN: 

     # The down arrow key was pressed 
     # Note the key attribute is being checked rather than type 
     if event.key == pygame.KEY_DOWN: 
      # do something 

     # The right arrow key was pressed 
     elif event.key == pygame.K_RIGHT: 
      # do something else