pygame入门基础知识(一)

简介: > 1、pygame介绍和安装Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)。

> 1、pygame介绍和安装


Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,

它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)。

Pygame 是 Pete Shinners 在 SDL(Simple DirectMedia Layer,一套开源的跨平台多媒体开发库)

基础上开发而来,其目的是取代 PySDL

```

安装方法

pip install pygame

```


> 2、写一个demo


```python

#导入所需的模块

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() #更新屏幕内容

```

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/b5cc7254b6ab4bee8511607ddc5fce3f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbGlhbmdibG9n,size_13,color_FFFFFF,t_70,g_se,x_16)



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


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

```python

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

```

上述函数有两个参数常用参数:

size:元组参数,用来设置主窗口的大小

flags:功能标志位,表示创建的主窗口样式,比如创建全屏窗口、无边框窗口等


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

```python

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) 比上一个方法多了一个参数(缩放倍数)

```

>

相关文章
|
5月前
|
Python 容器
Pygame入门 2022 (4) 使用精灵类重构
Pygame入门 2022 (4) 使用精灵类重构
|
5月前
|
Python
Pygame入门 2022 (2)
Pygame入门 2022 (2)
Pygame入门 2022 (2)
|
5月前
|
Python
Pygame入门 2022 (3)
Pygame入门 2022 (3)
|
5月前
|
开发工具 图形学 Python
Pygame入门 2022 (1)
Pygame入门 2022 (1)
|
程序员 Python
Pygame第1-1课:入门
Pygame第1-1课:入门
122 0
|
编解码 Python
14天学习训练营之 入门Pygame
14天学习训练营之 入门Pygame
113 0
14天学习训练营之 入门Pygame
|
开发框架 Python
Python游戏开发入门:pygame实例运动的小球-5
Python游戏开发入门:pygame实例运动的小球-5
150 0
Python游戏开发入门:pygame实例运动的小球-5
|
Python
Python游戏开发入门:pygame色彩与绘图机制-4
Python游戏开发入门:pygame色彩与绘图机制-4
268 0
Python游戏开发入门:pygame色彩与绘图机制-4
|
Python
Python游戏开发入门:pygame事件处理机制-3
Python游戏开发入门:pygame事件处理机制-3
361 0
Python游戏开发入门:pygame事件处理机制-3
|
Python
Python游戏开发入门:pygame屏幕绘制机制-2
Python游戏开发入门:pygame屏幕绘制机制-2
266 0