iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >教你如何在Pygame 中移动你的游戏角色
  • 519
分享到

教你如何在Pygame 中移动你的游戏角色

2024-04-02 19:04:59 519人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Pygame是一组跨平台的 python 模块,专为编写视频游戏而设计。它包括旨在与 Python 编程语言一起使用的计算机图形和声音库。您可以使用 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 中移动你的游戏角色的文章就介绍到这了,更多相关Pygame移动游戏角色内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 教你如何在Pygame 中移动你的游戏角色

本文链接: https://www.lsjlt.com/news/134989.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 教你如何在Pygame 中移动你的游戏角色
    Pygame是一组跨平台的 Python 模块,专为编写视频游戏而设计。它包括旨在与 Python 编程语言一起使用的计算机图形和声音库。您可以使用 pygame 创建不同类型的游...
    99+
    2024-04-02
  • 怎么用Pygame使你的游戏角色移动起来
    怎么用Pygame使你的游戏角色移动起来,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们将使用 Pygame 来添加键盘控制,如此一来你就可以控制你的角色的移动。在 Pyga...
    99+
    2023-06-16
  • 教你用Pygame制作简单的贪吃蛇游戏
    目录1.序言2.安装与导入3.定义后续需要的参数4.绘制蛇与食物5.游戏规则与运行6.成品展示7.完整代码总结1.序言 目前基本上软测会用到的工具或者第三方库都已经被写完,本着不要逮...
    99+
    2024-04-02
  • 教你使用Python的pygame模块实现拼图游戏
    目录pygame介绍安装pygamepygame常用模块pygame入门案例pygame实现拼图游戏总结pygame介绍 Python Pygame 是一款专门为开发和设计 2D 电...
    99+
    2024-04-02
  • PHP 函数在移动开发中的角色
    php 函数在移动开发中扮演重要角色,它们简化了常见任务,提高了代码简洁性、一致性和可读性,并增强安全性。例如,filter_var() 函数可有效验证用户输入,确保电子邮件格式有效且密...
    99+
    2024-05-03
    php 移动开发 移动应用程序
  • CMS移动端SEO指南:让你的网站在移动设备上表现出色
    一、确保网站具有响应式设计 响应式设计是指网站可以根据不同设备的屏幕尺寸自动调整布局和内容,从而为用户提供最佳的浏览体验。响应式设计是移动端SEO的基础,因为搜索引擎会优先向用户推荐响应式网站。 二、优化移动端的元数据 元数据是指网站的...
    99+
    2024-02-11
    移动端SEO 移动设备优化 响应式设计 元数据 内容优化 速度优化 移动友好性
  • PHP 在移动端游戏开发中的应用
    php 可用于移动端游戏开发,它跨平台且效率高,成本效益好。本文提供了一个实战案例来创建一款 android 游戏,玩家控制一个方块穿过障碍物。游戏中,玩家通过触摸“上”和“下”按钮移动...
    99+
    2024-05-06
    php 移动端游戏开发 端游
  • 如何添加计分到你的Python游戏
    这篇文章主要介绍“如何添加计分到你的Python游戏”,在日常操作中,相信很多人在如何添加计分到你的Python游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何添加计分到你的Python游戏”的疑惑有所...
    99+
    2023-06-15
  • Golang技术在移动游戏开发中的潜力
    golang 因其高效、并发性和跨平台部署能力,使其成为移动游戏开发的理想选择。它的优势包括:1. 高效性能:编译语言可生成优化的机器代码,提升启动速度和帧速率。2. 并发编程:内置并发...
    99+
    2024-05-09
    golang 移动游戏开发 git
  • 图文教你如何快速把Win8当中的游戏管理器调出来
      从Vista开始,Windows就引入了游戏管理器作为整合所有游戏的一个工具。至少Windows 自带的扫雷,纸牌等UI,经典的游戏都以应用的方式出现在市场当中,而不是系统自带的了。那么Win8还有游戏管理器么   ...
    99+
    2023-06-04
    win8 游戏管理器 游戏 管理器 图文
  • 教你如何在pycharm中使用less
    前端css中用到less,在pycharm中安装配置less操作步骤如下: 1.点开setting,在Plugins中搜索node.js(安装less之前得安装node.js),安装...
    99+
    2024-04-02
  • 教你如何用python开发一款数字推盘小游戏
    目录1、布局设计2、算法设计2.1 创建并初始化数组2.2 移动算法2.3 是否胜利检测算法3、实现3.1 框架搭建3.2 数字方块实现3.3 将数字转换成方块添加到布局3.4 初始...
    99+
    2024-04-02
  • 教你如何在Nuxt3中使用wavesurfer.js
    目录安装 wavesurfer.js常规方式引入正确的引入方式加载插件加载波形数据暴露插件的方法项目安装 wavesurfer.js 在项目中安装 wavesurfer.js npm...
    99+
    2023-01-15
    Nuxt 3 使用 wavesurfer.js wavesurfer.js使用
  • 教你如何在Pytorch中使用TensorBoard
    什么是TensorboardX Tensorboard 是 TensorFlow 的一个附加工具,可以记录训练过程的数字、图像等内容,以方便研究人员观察神经网络训练过程。可是对于 ...
    99+
    2024-04-02
  • 你是否知道Python、npm和Django如何在Web开发中扮演不同的角色?
    Python、npm和Django是Web开发中常用的工具和框架。虽然它们都可以帮助我们开发Web应用程序,但它们在Web开发中扮演的角色却有所不同。在本文中,我们将深入探讨Python、npm和Django在Web开发中的不同角色以及如何...
    99+
    2023-11-13
    npm apache django
  • 怎么在你的Python游戏中添加一个玩家
    这篇文章主要为大家展示了“怎么在你的Python游戏中添加一个玩家”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么在你的Python游戏中添加一个玩家”这篇文章吧。在 Pygame 中,玩家操...
    99+
    2023-06-16
  • 教你python中如何取出colomap部分的颜色范围
    python 如何取出colormap中的部分色标 平常我们在绘制填色图时,经常会使用到各种colormap,但是python提供的一些 colormap色标有时候不那么合适,需要我...
    99+
    2024-04-02
  • 如何在python中利用pygame实现一个愤怒的小鸟游戏
    这篇文章将为大家详细讲解有关如何在python中利用pygame实现一个愤怒的小鸟游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码展示import pygame,syspyg...
    99+
    2023-06-06
  • windows vac无法验证你的游戏如何解决
    本文小编为大家详细介绍“windows vac无法验证你的游戏如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“windows vac无法验证你的游戏如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。v...
    99+
    2023-07-01
  • 教你如何将应用从docker-compose迁移到k8s中
    目录工具推荐操作步骤安装kompose转换yaml调整部署到k8s公司之前有一些应用是通过docker-compose部署,最近领导让我将其迁移到k8s中。我已经初步完成任务,现记录...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作