赞
踩
1、pygame介绍和安装
Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,
它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)。
Pygame 是 Pete Shinners 在 SDL(Simple DirectMedia Layer,一套开源的跨平台多媒体开发库)
基础上开发而来,其目的是取代 PySDL
安装方法
pip install pygame
2、写一个demo
#导入所需的模块 import sys import pygame # 使用pygame之前必须初始化 pygame.init() # 设置主屏窗口 screen = pygame.display.set_mode((400,400)) # 设置窗口的标题,即游戏名称 pygame.display.set_caption('hello world') #加载一张图片作为背景 background = pygame.image.load(r'H:\temp\dw.png') #背景图设置成屏幕小 background = pygame.transform.scale(background,(400,400)) #获得显示对象的rect区域坐标 bgRect = background.get_rect() # 引入字体类型 f = pygame.font.Font('C:/Windows/Fonts/simhei.ttf',50) # 生成文本信息,第一个参数文本内容;第二个参数,字体是否平滑; # 第三个参数,RGB模式的字体颜色;第四个参数,RGB模式字体背景颜色; text = f.render("这里是文字",True,(255,0,0),(0,0,0)) #获得显示对象的rect区域坐标 textRect =text.get_rect() # 设置显示对象居中 textRect.center = (200,200) # 将背景图绘制到主屏幕 Screen 上。 screen.blit(background,bgRect) # 将准备好的文本信息,绘制到主屏幕 Screen 上,并且在背景之上。 screen.blit(text,textRect) # 固定代码段,实现点击"X"号退出界面的功能,几乎所有的pygame都会使用该段代码 while True: # 循环获取事件,监听事件状态 for event in pygame.event.get(): # 判断用户是否点了"X"关闭按钮,并执行if代码段 if event.type == pygame.QUIT: #卸载所有模块 pygame.quit() #终止程序,确保退出程序 sys.exit() pygame.display.flip() #更新屏幕内容
3、基础知识之显示模块display:
Pygame 使用pygame.display显示模块中的方法创建游戏的主窗口:
screen = pygame.display.set_mode(size=(),flags=0)
上述函数有两个参数常用参数:
size:元组参数,用来设置主窗口的大小
flags:功能标志位,表示创建的主窗口样式,比如创建全屏窗口、无边框窗口等
创建主窗口后,就可以将其他图像添加上去,使用blit方法
scrren.blit(source, dest, area=None, special_flags = 0)
下面对上述参数做简单的介绍:
source:表示要粘贴的 Surface 对象。
dest:主窗口中的一个标识的坐标位置,可以接受一个 (x,y) 元组,或者 (x,y,width,height) 元组,也可以是一个 Rect 对象;(主窗口(screen)相当于游戏程序中尺寸最大的 Surface 对象,在这个最大的“画布”中,我们还可以添加其他“小”的 Surface 对象,这些对象以矩形的形式存在于主窗口)
area:接受一个 Rect 对象,默认为 None,如果提供该参数则相当于抠图操作,即在屏幕的指定区域显示想要的内容;
special_flags:可选参数,用于指定对应位置颜色的混合方式,参数值有 BLEND_RGBA_ADD、BLEND_SUB 等。如果不提供该参数的情况下,默认使用 source 的颜色覆盖 screen 的颜色。
4、基础知识子图像模块Surface :
Pygame 针对文本、图像、颜色提供了不同模块来生成它们各自的 Surface 对象。Surface 模块是Pygame 中专门用来新建图像的,通过该模块可以创建一个 Surface 对象,语法格式如下:
Surface=pygame.Surface(size=(width,height),flags,depth)
参数函数如下:
size:表示 Surface 对象的矩形区域大小;
flags:功能标志位,有两个可选参数值 HWSURFACE 和 SPCALPHA,前者代表将创建的 Surface 对象存放于显存中,后者表示让图像的每一个像素都包含一个 alpha 通道
depth:指定像素的颜色深度,默认为自适应模式,由 Pygame 自动调节。
Surface 模块提供的处理图像主要方法有:
pygame.Surface.blit() 将一个图像(Surface 对象)绘制到另一个图像上
pygame.Surface.convert() 修改图像(Surface 对象)的像素格式
pygame.Surface.fill() 使用纯色填充 Surface 对象
除了使用 Surface 模块新建图像外,还可以从外部加载图像
pygame.image.load(“图片路径”).convert()
上述方法将被加载的图像作为 Surface 对象来使用,此处使用 convert()来转换被加载图片的像素格式,是为了提升 Pygame 对图片的处理速度,该操作能够保证图像的像素格式与图片的显示格式是相同的。
5、pygame模块transform图片转换:
pygame.transform 模块允许对加载、创建后的图像进行一系列操作,比如调整图像大小、旋转图片等操作,常用方法有:
pygame.transform.scale() 将图片缩放至指定的大小,并返回一个新的 Surface 对象。
pygame.transform.scale(image_surface,(100,100)) 接收一个surface对象和一个宽高的元组
pygame.transform.rotate() 将图片旋转至指定的角度。
pygame.transform.rotate(image_surface,90) 将图片旋转90度。
pygame.transform.rotozoom() 以角度旋转图像,同时将图像缩小或放大至指定的倍数。
pygame.transform.rotozoom(image_surface,90,0.5) 比上一个方法多了一个参数(缩放倍数)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。