2016-05-09 120 views
1

我正在用Pygame和Python製作遊戲。我希望通過同時按下兩個鍵來移動一個塊。我該怎麼做?我可以使用一個鍵移動塊,但它不能用於兩個鍵。我可以使用Pygame同時按兩個鍵進行單個事件嗎?

我想塊移動聞一按「右鍵」和「1」一起

給定的代碼工作使用一個密鑰

if event.type==KEYDOWN: 
     if event.key==K_RIGHT: 
      move_fullcube=left 

我試圖有效地移動使用「和」但它仍然不起作用

if event.type==KEYDOWN: 
      if event.key==K_RIGHT and event.key==K_1: 
       move_fullcube=left 

回答

1

最簡單的方法是使用​​。這將返回可以像下面的示例一樣使用的鍵列表。

keys = pygame.keys.get_pressed() 

if keys[pygame.K_RIGHT] and keys[pygame.K_LEFT]: 
    move_fullcube = left 
+0

感謝這真的很有幫助...雖然pygayme.key.get_pressed()讓我修好了一陣子。 – shinite

0

有兩種不同的方法可以在pygame中進行鍵盤事件處理。第一種方式是你在做什麼,在哪裏你得到每一個事件的列表,並循環通過該列表。您的方法存在的問題是您一次只能查看一個事件,因此event.key不會同時等於K_RIGHTK_1,因爲它只是一個密鑰。事件將發生,但您一次只能查看其中的一個。如果你想這樣做,你必須設置兩個變量right_pressedone_pressed。像這樣的東西

right_pressed = False 
one_pressed = False 
for event in pygame.event.get(): 
    if event.type==KEYDOWN: 
     if event.key==K_RIGHT: 
      right_pressed = True 
     if event.key==K_1: 
      right_pressed = True 

然後在循環之外檢查它們是否都是真的。

另一種更簡單的方法是使用pygame.keys.get_pressed(),這對於檢查個別密鑰是否暫時關閉更爲方便。

+0

謝謝,這真的很有幫助。 – shinite

相關問題