2015-12-26 134 views
0

我有這樣的循環運動的蛇一樣的遊戲遊戲循環事件監聽

運動
while not gameExit: 
    for event in pygame.event.get(): 
     if event.type == pygame.KEYDOWN: 
     #Arrow keys move snake head. 
      if event.key == pygame.K_LEFT: 
       lead_y_change=0 
       lead_x_change -= 10 
      if event.key == pygame.K_RIGHT: 
       lead_y_change=0 
       lead_x_change += 10 
      if event.key == pygame.K_UP: 
       lead_x_change=0 
       lead_y_change -= 10 
      if event.key == pygame.K_DOWN: 
       lead_x_change=0 
       lead_y_change += 10 

     lead_x += lead_x_change 
     lead_y += lead_y_change 

     gameDisplay.fill(white) 
     pygame.draw.rect(gameDisplay, black, [lead_x, lead_y, 10, 10]) 
     pygame.display.update() 

應該發生什麼:

當我按下任何箭頭鍵的循環應該跑過去,在更新動作和小黑色矩形應該飛過屏幕再也看不到。

會發生什麼:

矩形在關鍵鑰匙後向上移動10下來,然後10。然後按20鍵和20鍵,等等。 。 。它似乎也對鼠標運動有反應。我不知道爲什麼。我使用python 3.4和pygame 1.9。

這是怎麼回事?我如何糾正它以獲得預期的結果?

感謝您的幫助!

+2

如何減少以'lead_x + = lead_x_change'開頭的行的縮進?現在只有在事件發生時纔會發送到這些行。 –

+0

你能提供一個可運行的[MCVE](http://stackoverflow.com/help/mcve)並準確解釋你想要程序做什麼嗎?你想在單次按鍵後以恆定速率移動盒子?或者是其他東西? – TigerhawkT3

+0

Ohhhh,我現在看到了縮進問題。非常感謝! – az89

回答

1

[張貼作爲一個答案所以這個問題能夠得到妥善完成]

看起來開始lead_x += lead_x_change線需要被outdented一個級別。現在只有在事件發生時纔會發送到這些行。