简单了解pygame
顾名思义,Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,它是一个免费、开源的第三方软件包,支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)。Pygame 是 Pete Shinners 在 SDL(Simple DirectMedia Layer,一套开源的跨平台多媒体开发库)基础上开发而来,其目的是取代 PySDL。
Pygame 在 SDL(Simple DirectMedia Layer,使用 C语言编写的多媒体开发库) 的基础上开发而成,它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模块等。相比于开发 3D 游戏而言,Pygame 更擅长开发 2D 游戏,比如于飞机大战、贪吃蛇、扫雷等游戏。
要想使用pygame首先就是安装pygame,需要在终端输入如下代码
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame==1.9.6
pygame使用
1.游戏的初始化和退出
要使用pygame提供的所有功能之前,需要调用init方法
在游戏结束之前需要调用quit方法
import pygame
pygame.init()
print('游戏的代码')
pygame.quit()
2.游戏中的坐标系
x轴水平方向向右,逐渐增加
y轴垂直方向向下,逐渐增加
在游戏中,所有可见的元素都是以矩形区域来描述位置的,要描述一个矩形区域有四个元素
(x, y)起始点的横纵坐标
(width, height)矩形的宽度和高度
pygame提供给了一个类pygame.Rect(x, y, width, height)
# import pygame
# rect = pygame.Rect(100, 50, 120, 125)
# print('矩形的原点:({},{})'.format(rect.x, rect.y))
# print('矩形的尺寸:({},{})'.format(rect.width, rect.height))
3.创建游戏的主窗口
pygame提供了一个模块pygame.display用于创建,管理游戏窗口
初始化游戏窗口:pygame.display.set_mode()
刷新屏幕内容显示:pygame.display.update()
set_mode(resolution=(), flags=0, depth=0)
参数
# resolution指定屏幕的宽和高,默认创建的窗口大小和屏幕一致
# flags参数指定屏幕的附加选项,例如是否全屏等等,默认不需要传递
# depth参数表示颜色的位数,默认自动匹配
# 返回值
# 游戏的屏幕,游戏的元素都需要被绘制到游戏的屏幕上
# 注意:必须使用变量记录set_mode方法的返回结果
import pygame
import time
pygame.init()
# # 创建游戏窗口 480*700
screen = pygame.display.set_mode((480, 700))
time.sleep(10)
pygame.quit()
4.图像的绘制
在游戏中,能够看到的游戏元素大多都是图像
图像文件初始是保存在磁盘上的,如果需要使用则需要加载
要在屏幕上看到图像内容,需要三个步骤
(1).使用pygame.image.load()加载图像数据
(2).使用游戏屏幕对象,调用blit方法将图像绘制到指定位置
(3)调用pygame.display.update()方法更新整个屏幕的显示
import pygame
pygame.init()
#
# # 创建游戏窗口
screen = pygame.display.set_mode((480, 700))
#
# # 绘制背景图像
# # 1.加载图像数据
bg = pygame.image.load('./images/background.png')
# # 2.绘制图像screen.blit(bg, (0, 0))
#
# # 绘制图像
plane = pygame.image.load('./images/me1.png')
screen.blit(plane, (150, 150))
# # 3.更新屏幕显示
pygame.display.update()
while True:
pass
# 5.update()
简单的pygame示例
#导入所需的模块
import sys
import pygame
# 使用pygame之前必须初始化
pygame.init()
# 设置主屏窗口
screen = pygame.display.set_mode((500,500))
# 设置窗口的标题,即游戏名称
pygame.display.set_caption('hello world')
# 引入字体类型
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(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() #更新屏幕内容
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章