五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

教你如何在Pygame 中移動(dòng)你的游戲角色

發(fā)布日期:2022-01-18 08:19 | 文章來(lái)源:源碼之家

Pygame是一組跨平臺(tái)的 Python 模塊,專為編寫(xiě)視頻游戲而設(shè)計(jì)。它包括旨在與 Python 編程語(yǔ)言一起使用的計(jì)算機(jī)圖形和聲音庫(kù)。您可以使用 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ù)。

語(yǔ)法:

set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0)

創(chuàng)建一個(gè)變量來(lái)存儲(chǔ)玩家的速度。設(shè)置玩家的初始坐標(biāo)?,F(xiàn)在,根據(jù)鍵盤(pán)事件(即鍵狀態(tài)改變時(shí)發(fā)生的事件)更改播放器的 x 和 y 坐標(biāo)。

blit(surface,surfacerect) 函數(shù)用于在屏幕上繪制圖像。

語(yǔ)法:

blit(surface, surfacerect)

為了從隊(duì)列中收集所有事件,使用事件模塊的 get() 函數(shù),然后我們使用 for 循環(huán)迭代所有事件。

語(yǔ)法:

get(eventtype=None)

使用顯示模塊的 update() 函數(shù)更新屏幕。

語(yǔ)法:

update(rectangle=None)

下面是實(shí)現(xiàn)

示例:玩家移動(dòng)程序

# 導(dǎo)入 pygame 模塊
import pygame
from 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 和 y
x = 100
y = 100
 
# 創(chuàng)建一個(gè)變量來(lái)存儲(chǔ)玩家移動(dòng)的速度
velocity = 12
 
# 創(chuàng)建無(wú)限循環(huán)
run = True
while 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,即按下鍵盤(pán)按鈕,則檢查事件鍵
  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ì)象來(lái)使用 clock() 控制游戲的幀速率。

語(yǔ)法

Clock()

創(chuàng)建一個(gè)新變量(名為 key_pressed_is)來(lái)存儲(chǔ)用戶按下的鍵。為此,我們使用 key 模塊的 get_pressed() 函數(shù)。

語(yǔ)法

get_pressed()

它返回一個(gè)布爾值序列,表示鍵盤(pán)上每個(gè)鍵的狀態(tài)。

示例:連續(xù)移動(dòng)玩家

# 導(dǎo)入 pygame 模塊
import pygame
from 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 和 y
x = 100
y = 100
 
# 創(chuàng)建一個(gè)變量來(lái)存儲(chǔ)玩家移動(dòng)的速度
velocity = 12
 
# 創(chuàng)建無(wú)限循環(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 對(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()

輸出:

翻轉(zhuǎn)玩家精靈

您可以使用 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ù):

  • 要翻轉(zhuǎn)的圖像
  • 進(jìn)行水平翻轉(zhuǎn)的布爾值
  • 進(jìn)行垂直翻轉(zhuǎn)的布爾值

下面是實(shí)現(xiàn)。

示例:翻轉(zhuǎn)播放器圖像

輸出:

我們還可以通過(guò)創(chuàng)建精靈列表輕松更新玩家精靈。

image = [pygame.image.load(r'haiyong.png'),
pygame.image.load(r'haiyong2.png')]

示例:更新精靈

# 導(dǎo)入 pygame 模塊
import pygame
from 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è)變量來(lái)檢查運(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 和 y
x = 100
y = 100
 
# 創(chuàng)建一個(gè)變量來(lái)存儲(chǔ)玩家移動(dòng)的速度
velocity = 12
 
# 創(chuàng)建無(wú)限循環(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 對(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()

換張圖試試

到此這篇關(guān)于教你如何在Pygame 中移動(dòng)你的游戲角色的文章就介紹到這了,更多相關(guān)Pygame移動(dòng)游戲角色內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部