激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 教你如何在Pygame 中移動你的游戲角色

教你如何在Pygame 中移動你的游戲角色

2022-01-03 12:02海擁 Python

Pygame是一組跨平臺的 Python 模塊,專為編寫視頻游戲而設計,您可以使用 pygame 創建不同類型的游戲,包括街機游戲、平臺游戲等等,今天通過本文給大家介紹Pygame移動游戲角色的實現過程,一起看看吧

教你如何在Pygame 中移動你的游戲角色

Pygame是一組跨平臺的 Python 模塊,專為編寫視頻游戲而設計。它包括旨在與 Python 編程語言一起使用的計算機圖形和聲音庫。您可以使用 pygame 創建不同類型的游戲,包括街機游戲、平臺游戲等等。

使用的圖像:

教你如何在Pygame 中移動你的游戲角色教你如何在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()

輸出:

教你如何在Pygame 中移動你的游戲角色

玩家也可以連續移動。為此,除了要進行一些更改外,其他一切都保持不變。在這里,我們創建了一個新的時鐘對象來使用 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 中移動你的游戲角色

翻轉玩家精靈

您可以使用 pygame 的轉換模塊的 flip() 函數輕松翻轉任何精靈。例如,如果我們想在玩家改變移動方向時翻轉精靈,那么我們可以使用下面的代碼

window.blit(pygame.transform.flip(image, False, True), (x,y))

flip() 函數用于水平、垂直翻轉表面對象。 或兩者。 這個函數有三個參數:

  • 要翻轉的圖像
  • 進行水平翻轉的布爾值
  • 進行垂直翻轉的布爾值

下面是實現。

示例:翻轉播放器圖像

輸出:

教你如何在Pygame 中移動你的游戲角色

我們還可以通過創建精靈列表輕松更新玩家精靈。

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 中移動你的游戲角色

換張圖試試

教你如何在Pygame 中移動你的游戲角色

到此這篇關于教你如何在Pygame 中移動你的游戲角色的文章就介紹到這了,更多相關Pygame移動游戲角色內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_44273429/article/details/120157888

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久在线免费观看 | 色婷婷久久久久久 | 黄色av免费电影 | 国产成人在线免费看 | 欧洲黄色一级视频 | 69性欧美高清影院 | 暴力强行进如hdxxx | 国产精品成人一区二区三区电影毛片 | 国产免费观看视频 | 国产精品一区二区三区在线 | 精品成人免费视频 | 香蕉久草视频 | 国产女同玩人妖 | 久久久久久久久久久久99 | 欧美h版在线观看 | 黄色影院在线观看视频 | 蜜桃av网 | 欧美成人se01短视频在线看 | 国内一区 | 曰本三级日本三级日本三级 | 国产成人高清成人av片在线看 | 欧美日韩亚洲成人 | 把娇妻调教成暴露狂 | 日本高清在线播放 | 国产人成精品综合欧美成人 | 国产精品久久久久久影院8一贰佰 | 亚洲aⅴ免费在线观看 | 成人高清网站 | 激情av在线 | 午夜精品久久久久久毛片 | 精品一区二区三区电影 | av免费在线免费观看 | 日韩精品羞羞答答 | 亚洲国产精品久久久久久久久久久 | 欧美 日韩 亚洲 中文 | av电影在线网站 | 欧美jizzhd极品欧美 | 日韩av在线网 | 久久情爱网 | 爱操影院| 久久网页 |