Skip to main content
 Web开发网 » 编程语言 » Python语言

Pygame游戏开发-从入门到放弃(1)

2021年11月27日540百度已收录

Pygame的介绍Pygame是一组专门为编写游戏设计的Python模块,增加了SDL库功能。可以使你在Python语言中轻松地创建全功能的游戏和多媒体程序。

Pygame是免费的,在GPL许可下发布,你可以创建开源,免费,免费软件,共享软件,和商业游戏。 Pygame已经存在很多时间了,许多优秀的程序员加入其中,把Pygame做得越来越好。

安装Pygame首先通过win+R键打开运行窗口,输入cmd命令进入到控制台,然后输入pip install pygame -i。

Pygame游戏开发-从入门到放弃(1)  Python游戏开发 第1张

安装pygame

安装完成之后,输入python回车,进入python环境,然后输入import pygame检查是否安装成功。

Pygame游戏开发-从入门到放弃(1)  Python游戏开发 第2张

检查是否安装成功

如果出现:ImportError: No module named pygame 那就是没有安装成功,(●'◡'●)。

如果没有出现异常错误,那就说明pygame模块安装成功了。

导入与初始化环境安装完成之后,我们就正式开始介绍关于pygame的使用,准备好了吗?

Pygame游戏开发-从入门到放弃(1)  Python游戏开发 第3张

开始

今天我们主要讲pygame导入与初始化、载入图像与声音、主循环等内容。

在pygame中,导入和初始化是一个非常简单的过程。有多简单呢?

首先,第一步导入pygame包,只有导入包之后才能使用其中的方法与属性。

import pygame

第二步初始化,通过init方法初始化pygame库,让计算机硬件做好准备。

pygame.init()

完成了初始化的工作之后,接下来我们尝试创建出来一个pygame的窗口。

创建一个Pygame窗口Pygame最重要的部分是表面。我们可以把表面想象成一张白纸。你可以用表面做很多事情:画线、填充颜色、复制图像等。这个表面可以是任何尺寸的,我们设置的是800(宽)*600(高)的大小。试着运行这个程序,你会发现有一个黑黑的窗口一闪而过。

import pygamepygame.init()screen = pygame.display.set_mode([800,600])这是因为Pygame的作用就是为了创建游戏,所以需要与玩家不断互动, 需要有一个事件循环一直运行。 为了让事件驱动系统"看到"事件发生,它必须不断"寻找"事件,这种特殊的循环我们称为事件循环。因此我们需要采用while来执行这种循环。

import pygamepygame.init()screen = pygame.display.set_mode([1080,675])while True: pass添加了while循环之后,黑窗口就能够一直存在了,但是会产生新的问题,那就是程序进入了死循环,无法关闭。

Pygame游戏开发-从入门到放弃(1)  Python游戏开发 第4张

死循环

接着,我们要增加一个事件处理器,用来监听当用户点击退出按钮时发生的事件。

在pygame中我们将使用的模块是 pygame.event,使用pygame.event.get()方法可以从事件队列得到所有事件的一个列表。

获取到所有的事件之后,通过遍历的方式处理列表中的每一个事件,如果遇到QUIT退出事件,则调用sys.exit方法结束程序。

import sysimport pygamepygame.init()screen = pygame.display.set_mode([1080,675])while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit()运行以上代码,你就会看到一个能正常工作的窗口啦~,通过右上角的叉叉就能够正常的关闭程序。

插入图像(pygame.image)当程序正常运行之后,接下来我们想办法在窗口中插入一张图片, 在 Pygame 中,使用图像最简单的方法就是利用 image 函数, pygame.image模块有一个load()函数,可以帮我们加载图片。

import sysimport pygamepygame.init()screen = pygame.display.set_mode([1080,675])image_filename = './Source/diss.png'image = pygame.image.load(image_filename)while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit()Pygame游戏开发-从入门到放弃(1)  Python游戏开发 第5张

可恶

运行代码之后,pygame的窗口并没有出现图片这是因为图片加载完成后,我们需要将像素从一个地方复制到另一个地方。像素复制在编程中有一个特殊的名字,叫做块移(blitting)。

它可以帮助我们将一个图像从一个地方“块移”(就是复制啦)到另一个地方。移到哪里呢?我们需要设定一个起始位置,即: x 轴(水平方向)、y 轴(垂直方向)。 在 Pygame 中, 这两个数是从从窗口左上角的 [0, 0] 坐标开始的。

所以我们需要加入以下代码:screen.blit(image, [0, 0]).

除此之外,对于 Pygame 窗口中显示的所有内容来讲,如果内容发现变化之后就需要进行flip,否则修改的内容并不能更新到窗口。

# 导入模块import sysimport pygame# 初始化pygame.init()# 设置窗口screen = pygame.display.set_mode([1080,675])# 图片路径image_filename = './Source/diss.png'# 加载图片image = pygame.image.load(image_filename)# 移动图片screen.blit(image, [0, 0])# 更新窗口内容pygame.display.flip()# 循环监听事件while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit()运行以上代码,有一个可爱的小姐姐在等你~。

Pygame游戏开发-从入门到放弃(1)  Python游戏开发 第6张

小姐姐

是不是有点意犹未尽的赶脚?想要深入学习可以继续关注,接下来会继续更新哦

感谢关注~

Pygame游戏开发-从入门到放弃(1)  Python游戏开发 第7张

评论列表暂无评论
发表评论
微信