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