pygame對鍵盤的連續(xù)監(jiān)聽,供大家參考,具體內(nèi)容如下
大家請看下面這一段代碼:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
print("右")
if event.key == pygame.K_UP:
print("上")
if event.key == pygame.K_DOWN:
print("下")
if event.key == pygame.K_LEFT:
print("左")
大家首次監(jiān)控鍵盤事件一般都會寫出這樣的代碼我們著重來看一下對鍵盤上下左右鍵的監(jiān)控。我們運(yùn)行代碼塊我們會發(fā)現(xiàn)這幾行代碼和我們的想法是不一樣的,我們在開發(fā)游戲的時候,我們大部分時候希望是可以連續(xù)控制,這樣可以大大減少我們的手部疲勞,對玩家們也會非常的友好,但是我們現(xiàn)在的代碼塊,是敲一下鍵盤響應(yīng)一次事件。所以我們要對代碼進(jìn)行改進(jìn),改進(jìn)的方法有以下兩種,大家可以根據(jù)自己的理解進(jìn)行選擇。
方法一:設(shè)置中間變量
moving_r = False
moving_l = False
moving_u = False
moving_d = False
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
moving_r = True
if event.key == pygame.K_UP:
moving_u = True
if event.key == pygame.K_DOWN:
moving_d = True
if event.key == pygame.K_LEFT:
moving_l = True
elif event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT:
moving_r = False
if event.key == pygame.K_UP:
moving_u = False
if event.key == pygame.K_DOWN:
moving_d = False
if event.key == pygame.K_LEFT:
moving_l = False
if moving_r:
print("右")
elif moving_u:
print("上")
elif moving_d:
print("下")
elif moving_l:
print("左")
引入四個moving變量將四個變量的初值均設(shè)為Flase,用pygame的KEYDOWN和KEYUP方法來改變四個變量的值,以此來實現(xiàn)對鍵盤的連續(xù)監(jiān)控,這種方法雖然很好理解,但是如果是小白對代碼的重構(gòu)不是很熟悉會顯得非常綴余。
方法二:運(yùn)用pygame中g(shù)et_pressed()
# 鍵盤的連續(xù)監(jiān)聽
Key_pressed = pygame.key.get_pressed()
if Key_pressed[K_UP]:
print("上")
if Key_pressed[K_DOWN]:
print("下")
if Key_pressed[K_LEFT]:
print("左")
if Key_pressed[K_RIGHT]:
print("右")
這樣也是能連續(xù)監(jiān)聽鍵盤事件,但是這里需要注意一下if半段語句后面是中括號并非是小括號,第二個要注意的地方便是鍵盤名稱,如果直接輸入K_UP等是會報錯的,有兩種解決辦法一種是導(dǎo)入pygame的方法:
這樣就不會報錯了,另一種是在K_UP 前面加上pygame如:
if Key_pressed[pygame.K_UP]:
print("上")
這樣也是可行的。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- pygame可視化幸運(yùn)大轉(zhuǎn)盤實現(xiàn)
- pygame多種方式實現(xiàn)屏保操作(自動切換、鼠標(biāo)切換、鍵盤切換)
- 利用pygame完成動畫精靈和碰撞檢測
- 詳解pygame捕獲鍵盤事件的兩種方式
- python使用pygame創(chuàng)建精靈Sprite
- pygame面向?qū)ο蟮娘w行小鳥實現(xiàn)(Flappy bird)
- pygame實現(xiàn)鍵盤和鼠標(biāo)事件的處理
- Pygame做一期吃豆子游戲的示例代碼
- Python Pygame實現(xiàn)俄羅斯方塊
- 五分鐘學(xué)會怎么用Pygame做一個簡單的貪吃蛇
- Python使用Pygame繪制時鐘
- pygame實現(xiàn)井字棋之第一步繪制九宮格