当前位置:   article > 正文

pygame入门基础知识粗讲(一)_pygame入门知识粗讲(一)

pygame入门知识粗讲(一)

1、pygame介绍和安装

Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,
它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)。
Pygame 是 Pete Shinners 在 SDL(Simple DirectMedia Layer,一套开源的跨平台多媒体开发库)
基础上开发而来,其目的是取代 PySDL

安装方法
pip install pygame
  • 1
  • 2

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() #更新屏幕内容
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

在这里插入图片描述

3、基础知识之显示模块display:

Pygame 使用pygame.display显示模块中的方法创建游戏的主窗口:

screen = pygame.display.set_mode(size=(),flags=0)
  • 1

上述函数有两个参数常用参数:
size:元组参数,用来设置主窗口的大小
flags:功能标志位,表示创建的主窗口样式,比如创建全屏窗口、无边框窗口等

创建主窗口后,就可以将其他图像添加上去,使用blit方法

scrren.blit(source, dest, area=None, special_flags = 0)
  • 1

下面对上述参数做简单的介绍:
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)
  • 1

参数函数如下:
size:表示 Surface 对象的矩形区域大小;
flags:功能标志位,有两个可选参数值 HWSURFACE 和 SPCALPHA,前者代表将创建的 Surface 对象存放于显存中,后者表示让图像的每一个像素都包含一个 alpha 通道
depth:指定像素的颜色深度,默认为自适应模式,由 Pygame 自动调节。

Surface 模块提供的处理图像主要方法有:

pygame.Surface.blit() 	将一个图像(Surface 对象)绘制到另一个图像上
pygame.Surface.convert() 	修改图像(Surface 对象)的像素格式
pygame.Surface.fill()  	使用纯色填充 Surface 对象
  • 1
  • 2
  • 3

除了使用 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) 比上一个方法多了一个参数(缩放倍数)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/127171
推荐阅读
相关标签
  

闽ICP备14008679号