亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

pygame實現(xiàn)鍵盤的連續(xù)監(jiān)控

 更新時間:2021年04月07日 08:39:22   作者:money_wife  
這篇文章主要為大家詳細介紹了pygame實現(xiàn)鍵盤的連續(xù)監(jiān)控,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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)控。我們運行代碼塊我們會發(fā)現(xiàn)這幾行代碼和我們的想法是不一樣的,我們在開發(fā)游戲的時候,我們大部分時候希望是可以連續(xù)控制,這樣可以大大減少我們的手部疲勞,對玩家們也會非常的友好,但是我們現(xiàn)在的代碼塊,是敲一下鍵盤響應一次事件。所以我們要對代碼進行改進,改進的方法有以下兩種,大家可以根據(jù)自己的理解進行選擇。

方法一:設置中間變量

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變量將四個變量的初值均設為Flase,用pygame的KEYDOWN和KEYUP方法來改變四個變量的值,以此來實現(xiàn)對鍵盤的連續(xù)監(jiān)控,這種方法雖然很好理解,但是如果是小白對代碼的重構(gòu)不是很熟悉會顯得非常綴余。

方法二:運用pygame中get_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等是會報錯的,有兩種解決辦法一種是導入pygame的方法:

from pygame import *

這樣就不會報錯了,另一種是在K_UP 前面加上pygame如:

if Key_pressed[pygame.K_UP]:
  print("上")

這樣也是可行的。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python自定義logger模塊的實例代碼

    Python自定義logger模塊的實例代碼

    Python標準庫中的logging模塊提供了日志記錄的功能,自定義 Logger 可以根據(jù)項目的需求定制化日志記錄,滿足特定的日志記錄格式、輸出目標和日志級別等要求,本文給大家介紹了Python自定義logger模塊的實例代碼,需要的朋友可以參考下
    2024-02-02
  • Python中ArcPy柵格裁剪柵格(批量對齊柵格圖像范圍并統(tǒng)一行數(shù)與列數(shù))

    Python中ArcPy柵格裁剪柵格(批量對齊柵格圖像范圍并統(tǒng)一行數(shù)與列數(shù))

    本文介紹基于Python中ArcPy模塊,實現(xiàn)基于柵格圖像批量裁剪柵格圖像,同時對齊各個柵格圖像的空間范圍,統(tǒng)一其各自行數(shù)與列數(shù)的方法,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Python中的內(nèi)置函數(shù)isdigit()

    Python中的內(nèi)置函數(shù)isdigit()

    這篇文章主要介紹了Python中的內(nèi)置函數(shù)isdigit(),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python如何壓縮新文件到已有ZIP文件

    python如何壓縮新文件到已有ZIP文件

    這篇文章主要為大家詳細介紹了python如何壓縮新文件到已有ZIP文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python離線安裝openpyxl模塊的步驟

    Python離線安裝openpyxl模塊的步驟

    這篇文章主要介紹了Python離線安裝openpyxl模塊的步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • python web應用程序之Django數(shù)據(jù)庫詳解

    python web應用程序之Django數(shù)據(jù)庫詳解

    這篇文章主要介紹了python web應用程序之Django數(shù)據(jù)庫,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • TensorFlow利用saver保存和提取參數(shù)的實例

    TensorFlow利用saver保存和提取參數(shù)的實例

    今天小編就為大家分享一篇TensorFlow利用saver保存和提取參數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python基于Faker假數(shù)據(jù)構(gòu)造庫

    Python基于Faker假數(shù)據(jù)構(gòu)造庫

    這篇文章主要介紹了Python基于Faker假數(shù)據(jù)構(gòu)造庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python實現(xiàn)PID溫控算法的示例代碼

    python實現(xiàn)PID溫控算法的示例代碼

    PID算法是一種常用的控制算法,用于調(diào)節(jié)和穩(wěn)定控制系統(tǒng)的輸出,這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)pid溫控算法,需要的可以參考下
    2024-01-01
  • Python使用Streamlit快速創(chuàng)建儀表盤

    Python使用Streamlit快速創(chuàng)建儀表盤

    這篇文章主要為大家詳細介紹了Python如何使用Streamlit快速創(chuàng)建一個簡單的儀表盤,文中的示例代碼簡潔易懂,快跟隨小編一起來學習一下吧
    2023-09-09

最新評論