大家好,欢迎来到IT知识分享网。
Pygame的介绍
Pygame是一组专门为编写游戏设计的Python模块,增加了SDL库功能。可以使你在Python语言中轻松地创建全功能的游戏和多媒体程序。
Pygame是免费的,在GPL许可下发布,你可以创建开源,免费,免费软件,共享软件,和商业游戏。 Pygame已经存在很多时间了,许多优秀的程序员加入其中,把Pygame做得越来越好。
安装Pygame
安装完成之后,输入python回车,进入python环境,然后输入import pygame检查是否安装成功。
如果出现:ImportError: No module named pygame 那就是没有安装成功,(●’◡’●)。
如果没有出现异常错误,那就说明pygame模块安装成功了。
导入与初始化
环境安装完成之后,我们就正式开始介绍关于pygame的使用,准备好了吗?
今天我们主要讲pygame导入与初始化、载入图像与声音、主循环等内容。
在pygame中,导入和初始化是一个非常简单的过程。有多简单呢?
首先,第一步导入pygame包,只有导入包之后才能使用其中的方法与属性。
import pygame
第二步初始化,通过init方法初始化pygame库,让计算机硬件做好准备。
pygame.init()
完成了初始化的工作之后,接下来我们尝试创建出来一个pygame的窗口。
创建一个Pygame窗口
Pygame最重要的部分是表面。我们可以把表面想象成一张白纸。你可以用表面做很多事情:画线、填充颜色、复制图像等。这个表面可以是任何尺寸的,我们设置的是800(宽)*600(高)的大小。试着运行这个程序,你会发现有一个黑黑的窗口一闪而过。
import pygame pygame.init() screen = pygame.display.set_mode([800,600])
这是因为Pygame的作用就是为了创建游戏,所以需要与玩家不断互动, 需要有一个事件循环一直运行。 为了让事件驱动系统”看到”事件发生,它必须不断”寻找”事件,这种特殊的循环我们称为事件循环。因此我们需要采用while来执行这种循环。
import pygame pygame.init() screen = pygame.display.set_mode([1080,675]) while True: pass
添加了while循环之后,黑窗口就能够一直存在了,但是会产生新的问题,那就是程序进入了死循环,无法关闭。
接着,我们要增加一个事件处理器,用来监听当用户点击退出按钮时发生的事件。
在pygame中我们将使用的模块是 pygame.event,使用pygame.event.get()方法可以从事件队列得到所有事件的一个列表。
获取到所有的事件之后,通过遍历的方式处理列表中的每一个事件,如果遇到QUIT退出事件,则调用sys.exit方法结束程序。
import sys import pygame pygame.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 sys import pygame pygame.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的窗口并没有出现图片这是因为图片加载完成后,我们需要将像素从一个地方复制到另一个地方。像素复制在编程中有一个特殊的名字,叫做块移(blitting)。
它可以帮助我们将一个图像从一个地方“块移”(就是复制啦)到另一个地方。移到哪里呢?我们需要设定一个起始位置,即: x 轴(水平方向)、y 轴(垂直方向)。 在 Pygame 中, 这两个数是从从窗口左上角的 [0, 0] 坐标开始的。
所以我们需要加入以下代码:screen.blit(image, [0, 0]).
除此之外,对于 Pygame 窗口中显示的所有内容来讲,如果内容发现变化之后就需要进行flip,否则修改的内容并不能更新到窗口。
# 导入模块 import sys import 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()
运行以上代码,有一个可爱的小姐姐在等你~。
是不是有点意犹未尽的赶脚?想要深入学习可以继续关注,接下来会继续更新哦
感谢关注~
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/161181.html