Pygame是一組跨平臺的 Python 模塊,專為編寫視頻游戲而設(shè)計。它包括旨在與 Python 編程語言一起使用的計算機(jī)圖形和聲音庫。您可以使用 pygame 創(chuàng)建不同類型的游戲,包括街機(jī)游戲、平臺游戲等等。
使用的圖像:
你可以控制玩家的移動。為此,首先使用 pygame 的 display.set_mode() 方法創(chuàng)建一個顯示對象,并使用 pygame 的 image.load() 方法添加玩家的精靈。set_mode() 函數(shù)用于初始化顯示表面或窗口。size 參數(shù)是一對代表寬度和高度的數(shù)字。flags 參數(shù)是附加選項的集合。depth 參數(shù)表示用于顏色的位數(shù)。
語法:
set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0)
創(chuàng)建一個變量來存儲玩家的速度。設(shè)置玩家的初始坐標(biāo)?,F(xiàn)在,根據(jù)鍵盤事件(即鍵狀態(tài)改變時發(fā)生的事件)更改播放器的 x 和 y 坐標(biāo)。
blit(surface,surfacerect) 函數(shù)用于在屏幕上繪制圖像。
語法:
blit(surface, surfacerect)
為了從隊列中收集所有事件,使用事件模塊的 get() 函數(shù),然后我們使用 for 循環(huán)迭代所有事件。
語法:
get(eventtype=None)
使用顯示模塊的 update() 函數(shù)更新屏幕。
語法:
update(rectangle=None)
下面是實現(xiàn)
示例:玩家移動程序
# 導(dǎo)入 pygame 模塊
import pygame
from pygame.locals import *
# 啟動 pygame 并授予使用 pygame 功能的權(quán)限
pygame.init()
# 創(chuàng)建特定尺寸的顯示面對象
window = pygame.display.set_mode((600, 600))
# 在窗口中添加標(biāo)題
pygame.display.set_caption('Player Movement')
# 添加玩家精靈
image = pygame.image.load(r'haiyong.png')
# 將玩家的初始坐標(biāo)存儲在兩個變量中,即 x 和 y
x = 100
y = 100
# 創(chuàng)建一個變量來存儲玩家移動的速度
velocity = 12
# 創(chuàng)建無限循環(huán)
run = True
while run:
# 用白色填充背景
window.fill((255, 255, 255))
# 在 x 和 y 坐標(biāo)處顯示玩家精靈
window.blit(image, (x, y))
# 迭代 pygame.event.get() 方法返回的 Event 對象列表。
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
# 將表面對象繪制到屏幕上
pygame.display.update()
輸出:
玩家也可以連續(xù)移動。為此,除了要進(jìn)行一些更改外,其他一切都保持不變。在這里,我們創(chuàng)建了一個新的時鐘對象來使用 clock() 控制游戲的幀速率。
語法
Clock()
創(chuàng)建一個新變量(名為 key_pressed_is)來存儲用戶按下的鍵。為此,我們使用 key 模塊的 get_pressed() 函數(shù)。
語法
get_pressed()
它返回一個布爾值序列,表示鍵盤上每個鍵的狀態(tài)。
示例:連續(xù)移動玩家
# 導(dǎo)入 pygame 模塊
import pygame
from pygame.locals import *
# 啟動 pygame 并授予使用 pygame 功能的權(quán)限
pygame.init()
# 創(chuàng)建特定尺寸的顯示面對象
window = pygame.display.set_mode((600, 600))
# 在窗口中添加標(biāo)題
pygame.display.set_caption('玩家移動')
# 初始化時鐘 時鐘用于跟蹤和控制游戲的幀速率
clock = pygame.time.Clock()
# 添加玩家精靈
image = pygame.image.load(r'haiyong.png')
# 將玩家的初始坐標(biāo)存儲在兩個變量中,即 x 和 y
x = 100
y = 100
# 創(chuàng)建一個變量來存儲玩家移動的速度
velocity = 12
# 創(chuàng)建無限循環(huán)
run = True
while 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 對象列表。
for event in pygame.event.get():
# 如果事件類型為 QUIT,則關(guān)閉窗口和程序
if event.type == pygame.QUIT:
run = False
pygame.quit()
quit()
# 使用 key.get_pressed() 方法將按下的鍵存儲在新變量中
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
# 將表面對象繪制到屏幕上
pygame.display.update()
輸出:
翻轉(zhuǎn)玩家精靈
您可以使用 pygame 的轉(zhuǎn)換模塊的 flip() 函數(shù)輕松翻轉(zhuǎn)任何精靈。例如,如果我們想在玩家改變移動方向時翻轉(zhuǎn)精靈,那么我們可以使用下面的代碼
window.blit(pygame.transform.flip(image, False, True), (x,y))
flip() 函數(shù)用于水平、垂直翻轉(zhuǎn)表面對象。 或兩者。 這個函數(shù)有三個參數(shù):
- 要翻轉(zhuǎn)的圖像
- 進(jìn)行水平翻轉(zhuǎn)的布爾值
- 進(jìn)行垂直翻轉(zhuǎn)的布爾值
下面是實現(xiàn)。
示例:翻轉(zhuǎn)播放器圖像
輸出:
我們還可以通過創(chuàng)建精靈列表輕松更新玩家精靈。
image = [pygame.image.load(r'haiyong.png'),
pygame.image.load(r'haiyong2.png')]
示例:更新精靈
# 導(dǎo)入 pygame 模塊
import pygame
from pygame.locals import *
# 啟動 pygame 并授予使用 pygame 功能的權(quán)限
pygame.init()
# 創(chuàng)建特定尺寸的顯示面對象
window = pygame.display.set_mode((600, 600))
# 在窗口中添加標(biāo)題
pygame.display.set_caption('玩家切換')
# 初始化時鐘 時鐘用于跟蹤和控制游戲的幀速率
clock = pygame.time.Clock()
# 創(chuàng)建一個變量來檢查運動方向
# 每當(dāng)玩家改變方向時,我們就會改變它的值
direction = True
# 在列表中添加玩家精靈
image = [pygame.image.load(r'haiyong.png'),
pygame.image.load(r'haiyong2.png')]
# 將玩家的初始坐標(biāo)存儲在兩個變量中,即 x 和 y
x = 100
y = 100
# 創(chuàng)建一個變量來存儲玩家移動的速度
velocity = 12
# 創(chuàng)建無限循環(huán)
run = True
while 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 對象列表。
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() 方法將按下的鍵存儲在新變量中
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
# 將表面對象繪制到屏幕上
pygame.display.update()
換張圖試試
到此這篇關(guān)于教你如何在Pygame 中移動你的游戲角色的文章就介紹到這了,更多相關(guān)Pygame移動游戲角色內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Pygame做一期吃豆子游戲的示例代碼
- Python3+Pygame實現(xiàn)射擊游戲完整代碼
- python pygame 憤怒的小鳥游戲示例代碼
- python基于pygame實現(xiàn)飛機(jī)大作戰(zhàn)小游戲
- python+pygame實現(xiàn)坦克大戰(zhàn)小游戲的示例代碼(可以自定義子彈速度)
- 使用pygame實現(xiàn)垃圾分類小游戲功能(已獲校級二等獎)