您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么在Pygame中移動你的游戲角色,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
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)
創建一個變量來存儲玩家的速度。設置玩家的初始坐標。現在,根據鍵盤事件(即鍵狀態改變時發生的事件)更改播放器的 x 和 y 坐標。
blit(surface,surfacerect) 函數用于在屏幕上繪制圖像。
語法:
blit(surface, surfacerect)
為了從隊列中收集所有事件,使用事件模塊的 get() 函數,然后我們使用 for 循環迭代所有事件。
語法:
get(eventtype=None)
使用顯示模塊的 update() 函數更新屏幕。
語法:
update(rectangle=None)
下面是實現
示例:玩家移動程序
# 導入 pygame 模塊 import pygame from 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 和 y x = 100 y = 100 # 創建一個變量來存儲玩家移動的速度 velocity = 12 # 創建無限循環 run = True while 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 pygame from 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 和 y x = 100 y = 100 # 創建一個變量來存儲玩家移動的速度 velocity = 12 # 創建無限循環 run = True while 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 pygame from 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 和 y x = 100 y = 100 # 創建一個變量來存儲玩家移動的速度 velocity = 12 # 創建無限循環 run = True while 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()
換張圖試試
關于“怎么在Pygame中移動你的游戲角色”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。