作者:海擁
?
Pygame是一組跨平臺的 Python 模塊,專為編寫視頻游戲而設計。它包括旨在與 Python 編程語言一起使用的計算機圖形和聲音庫。您可以使用 pygame 創建不同類型的游戲,包括街機游戲、平臺游戲等等。
使用的圖像:
?
你可以控制玩家的移動。為此,首先使用 pygame 的 display.set_mode() 方法創建一個顯示對象,并使用 pygame 的 image.load() 方法添加玩家的精靈。set_mode() 函數用于初始化顯示表面或窗口。size 參數是一對代表寬度和高度的數字。flags 參數是附加選項的集合。depth 參數表示用于顏色的位數。
語法:
set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0)?
創建一個變量來存儲玩家的速度。設置玩家的初始坐標?,F在,根據鍵盤事件(即鍵狀態改變時發生的事件)更改播放器的 x 和 y 坐標。
blit(surface,surfacerect) 函數用于在屏幕上繪制圖像。
語法:
blit(surface, surfacerect)
為了從隊列中收集所有事件,使用事件模塊的 get() 函數,然后我們使用 for 循環迭代所有事件。
語法:
get(eventtype=None)
使用顯示模塊的 update() 函數更新屏幕。
語法:
update(rectangle=None)
下面是實現
示例:玩家移動程序
# 導入 pygame 模塊import pygamefrom pygame.locals import *# 啟動 pygame 并授予使用 pygame 功能的權限pygame.init()# 創建特定尺寸的顯示面對象window = pygame.display.set_mode((600, 600))# 在窗口中添加標題pygame.display.set_caption("Player Movement")# 添加玩家精靈image = pygame.image.load(r"haiyong.png")# 將玩家的初始坐標存儲在兩個變量中,即 x 和 yx = 100y = 100# 創建一個變量來存儲玩家移動的速度velocity = 12# 創建無限循環run = Truewhile run:?? ?# 用白色填充背景?? ?window.fill((255, 255, 255))?? ?# 在 x 和 y 坐標處顯示玩家精靈?? ?window.blit(image, (x, y))?? ?# 迭代 pygame.event.get() 方法返回的 Event 對象列表。?? ?for event in pygame.event.get():?? ??? ?# 如果事件類型為 QUIT,則關閉窗口和程序?? ??? ?if event.type == pygame.QUIT:?? ??? ??? ?run = False?? ??? ??? ?pygame.quit()?? ??? ??? ?quit()?? ??? ?# 如果事件類型為 KEYDOWN,即按下鍵盤按鈕,則檢查事件鍵?? ??? ?if event.type == pygame.KEYDOWN:?? ??? ??? ?# 如果按下的按鈕是左箭頭鍵,則減小 x 坐標?? ??? ??? ?if event.key == pygame.K_LEFT:?? ??? ??? ??? ?x -= velocity?? ??? ??? ?# 如果按下的按鈕是右箭頭鍵,則增加 x 坐標?? ??? ??? ?if event.key == pygame.K_RIGHT:?? ??? ??? ??? ?x += velocity?? ??? ??? ?# 如果按下按鈕是向上箭頭鍵,則減小 y 坐標?? ??? ??? ?if event.key == pygame.K_UP:?? ??? ??? ??? ?y -= velocity?? ??? ??? ?# 如果按下按鈕是向下箭頭鍵,則增加 y 坐標?? ??? ??? ?if event.key == pygame.K_DOWN:?? ??? ??? ??? ?y += velocity?? ??? ?# 將表面對象繪制到屏幕上?? ??? ?pygame.display.update()
輸出:
?玩家也可以連續移動。為此,除了要進行一些更改外,其他一切都保持不變。在這里,我們創建了一個新的時鐘對象來使用 clock() 控制游戲的幀速率。
語法
Clock()
?創建一個新變量(名為 key_pressed_is)來存儲用戶按下的鍵。為此,我們使用 key 模塊的 get_pressed() 函數。
語法
get_pressed()
它返回一個布爾值序列,表示鍵盤上每個鍵的狀態。
示例:連續移動玩家
# 導入 pygame 模塊import pygamefrom pygame.locals import *# 啟動 pygame 并授予使用 pygame 功能的權限pygame.init()# 創建特定尺寸的顯示面對象window = pygame.display.set_mode((600, 600))# 在窗口中添加標題pygame.display.set_caption("玩家移動")# 初始化時鐘 時鐘用于跟蹤和控制游戲的幀速率clock = pygame.time.Clock()# 添加玩家精靈image = pygame.image.load(r"haiyong.png")# 將玩家的初始坐標存儲在兩個變量中,即 x 和 yx = 100y = 100# 創建一個變量來存儲玩家移動的速度velocity = 12# 創建無限循環run = Truewhile run: # 將幀速率設置為 60 fps clock.tick(60) # 用白色填充背景 window.fill((255, 255, 255)) # 在 x 和 y 坐標處顯示玩家精靈 window.blit(image, (x, y)) # 迭代 pygame.event.get() 方法返回的 Event 對象列表。 for event in pygame.event.get(): # 如果事件類型為 QUIT,則關閉窗口和程序 if event.type == pygame.QUIT: run = False pygame.quit() quit() # 使用 key.get_pressed() 方法將按下的鍵存儲在新變量中 key_pressed_is = pygame.key.get_pressed() # 改變玩家坐標 if key_pressed_is[K_LEFT]: x -= 8 if key_pressed_is[K_RIGHT]: x += 8 if key_pressed_is[K_UP]: y -= 8 if key_pressed_is[K_DOWN]: y += 8 # 將表面對象繪制到屏幕上 pygame.display.update()
?輸出:
?
您可以使用 pygame 的轉換模塊的 flip() 函數輕松翻轉任何精靈。例如,如果我們想在玩家改變移動方向時翻轉精靈,那么我們可以使用下面的代碼?
window.blit(pygame.transform.flip(image, False, True), (x,y))
flip() 函數用于水平、垂直翻轉表面對象。 或兩者。 這個函數有三個參數:
下面是實現。
示例:翻轉播放器圖像
輸出:
?
?我們還可以通過創建精靈列表輕松更新玩家精靈。
image = [pygame.image.load(r’haiyong.png’),pygame.image.load(r’haiyong2.png’)]
示例:更新精靈
# 導入 pygame 模塊import pygamefrom pygame.locals import *# 啟動 pygame 并授予使用 pygame 功能的權限pygame.init()# 創建特定尺寸的顯示面對象window = pygame.display.set_mode((600, 600))# 在窗口中添加標題pygame.display.set_caption("玩家切換")# 初始化時鐘 時鐘用于跟蹤和控制游戲的幀速率clock = pygame.time.Clock()# 創建一個變量來檢查運動方向# 每當玩家改變方向時,我們就會改變它的值direction = True# 在列表中添加玩家精靈image = [pygame.image.load(r"haiyong.png"), pygame.image.load(r"haiyong2.png")]# 將玩家的初始坐標存儲在兩個變量中,即 x 和 yx = 100y = 100# 創建一個變量來存儲玩家移動的速度velocity = 12# 創建無限循環run = Truewhile run: # 將幀速率設置為 60 fps clock.tick(60) # 用淺灰藍色填充背景 window.fill((176, 224, 230)) # 在 x 和 y 坐標處顯示玩家精靈 # 如果玩家改變方向,則改變玩家精靈 if direction == True: window.blit(image[0], (x, y)) if direction == False: window.blit(image[1], (x, y)) # 迭代 pygame.event.get() 方法返回的 Event 對象列表。 for event in pygame.event.get(): # 如果事件類型為 QUIT,則關閉窗口和程序 if event.type == pygame.QUIT: run = False pygame.quit() quit() # 改變方向變量的值 if event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT: direction = True elif event.key == pygame.K_LEFT: direction = False # 使用 key.get_pressed() 方法將按下的鍵存儲在新變量中 key_pressed_is = pygame.key.get_pressed() # 改變玩家坐標 if key_pressed_is[K_LEFT]: x -= 5 if key_pressed_is[K_RIGHT]: x += 5 if key_pressed_is[K_UP]: y -= 5 if key_pressed_is[K_DOWN]: y += 5 # 將表面對象繪制到屏幕上 pygame.display.update()
?
換張圖試試
?更多和Python相關的文章
我已經寫了很長一段時間的技術博客,并且主要通過CSDN發表,這是我的一篇 Web 響應式可過濾的游戲+工具展示頁面教程。我喜歡通過文章分享技術與快樂。您可以訪問我的博客: https://haiyong.blog.csdn.net? 以了解更多信息。希望你們會喜歡!?
? 歡迎大家在評論區提出意見和建議!?
如果你真的從這篇文章中學到了一些新東西,喜歡它,收藏它并與你的小伙伴分享。?最后,不要忘了?或?支持一下哦。
?
?
?
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/119550.html
摘要:正文開心消消樂分為二部分首先是開心然后是消消樂游戲嘛嘿嘿一開心小故事三則近視聰明的學生殺手二消消樂游戲素材圖片開心消消樂語音提示環境安裝本文是由寫的小游戲。 導語 你今天消消樂了嗎? ? 哈嘍哈嘍~木木子之前不是寫過一篇百變消消樂嘛? 可能你們不記得了,沒關系——今天重溫一下,來一篇開心?...
響應式可過濾的游戲+工具展示頁面 用于各種網站以按類別對圖像進行排序。在本文中,我將向您展示如何借助 HTML CSS 和 javascript 創建響應式可過濾的游戲+工具展示頁面。 可過濾作品集是一種流行的網絡元素,可用于各種網站。它是一種作品畫廊,大量作品整齊地排列在一起。值得注意的一點是,所有作品都可以在這里按類別排序。有一個導航欄,其中對所有類別進行了排序。單擊這些類別中的任何一個時。...
文章目錄(PS:覺得不錯請點贊收藏支持一下) 1. 格式化代碼 【Ctrl + Alt + L】2. 多行代碼合并為一行【Crtl+Shift+J】3. 修正報警告的代碼【Ctrl + Enter】4 .包裝代碼【Crtl+Alt+T】5. 快速注釋/取消注釋【Crtl+/】6. 向右縮進一個制表位【Tab】7. 向左縮進一個制表位【Shift + Tab】8. 在上方插入新行【Ctrl + Al...
閱讀 2655·2021-11-24 10:44
閱讀 1895·2021-11-22 13:53
閱讀 1907·2021-09-30 09:47
閱讀 3704·2021-09-22 16:00
閱讀 2431·2021-09-08 09:36
閱讀 2312·2019-08-30 15:53
閱讀 2789·2019-08-30 15:48
閱讀 976·2019-08-30 15:44