没有合适的资源?快使用搜索试试~ 我知道了~
Pygame.docx
需积分: 0 0 下载量 124 浏览量
2023-03-12
12:51:41
上传
评论
收藏 755KB DOCX 举报
温馨提示
试读
34页
Pygame.docx
资源推荐
资源详情
资源评论
Pygame 安装
使用管理员权限打开“命令提示符”,在“命令提示符”输入命令:
pip install pygame
-i https://mirrors.aliyun.com/pypi/simple/
一、Pygame 入门
2.1 游戏的初始化和退出
要使用 pygame 提供的所有功能之前,需要调用 init 方法
在游戏结束前需要调用一下 quit 方法。
pygame.init() 导入并初始化所有 pygame 模块,使用其他模块之
前,必须先调用 init 方法, pygame.quit() 卸载所有 pygame 模
块,在游戏结束之前调用!
import pygame
pygame.init()
# 编写游戏的代码
print("游戏的代码...")
pygame.quit()
二、游戏中的坐标系
2.1 坐标系
原点 在 左上角 (0, 0)
x 轴 水平方向向 右,逐渐增加
y 轴 垂直方向向 下,逐渐增加
在游戏中,所有可见的元素 都是以 矩形区域 来描述位置的,要描述一个矩形区
域有四个要素:
(x, y): 起始点的横纵坐标
(width, height): 矩形的宽度和高度
2.2 Pygame 专门提供了一个类 pygame.Rect 用于描述 矩形区域
Rect(x, y, width, height) -> Rect
下面我们通过实际代码使用 Rect 类
三、创建游戏主窗口
pygame 专门提供了一个 模块 pygame.display 用于创建、管理 游戏窗口
pygame.display.set_mode():初始化游戏显示窗口
pygame.display.update():刷新屏幕内容显示
set_mode()方法
import pygame
rect = pygame.Rect(100, 500, 120, 125)
print("英雄的原点 ({}, {})".format(rect.x, rect.y))
print("英雄的尺寸 ({}, {})".format(rect.width)
print(rect.size)
set_mode(resolution=(0,0), flags=0, depth=0) -> Surface
参数:
resolution 指定屏幕的 宽 和 高,默认创建的窗口大小和屏幕大小一致
flags 参数指定屏幕的附加选项,例如是否全屏等等,默认不需要传递
depth 参数表示颜色的位数,默认自动匹配
返回值:
游戏的屏幕,游戏的元素 都需要被绘制到游戏的屏幕上
注意:必须使用变量记录 set_mode 方法的返回结果!因为:后续所有的图像
绘制都基于这个返回结果
四、图像的绘制
在游戏中,能够看到的游戏元素大多都是图像。图像文件初始是保存在磁盘
上的,如果需要使用,第一步 就需要 被加载到内存
要在屏幕上 看到某一个图像的内容,需要按照三个步骤:
➢ 使用 pygame.image.load() 加载图像的数据
➢ 使用 游戏屏幕 对象,调用 blit 方法 将图像绘制到指定位置
➢ 调用 pygame.display.update() 方法更新整个屏幕的显示
import pygame
pygame.init()
#
创建游戏的窗口
480 * 700
screen = pygame.display.set_mode((480, 700))
while True:
pass
pygame.quit()
4.1 绘制背景图片
4.2 绘制飞机图像
4.3 update()方法
使用 display.set_mode() 创建的 screen 对象 是一个 内存中的屏
幕数据对象。可以理解成是 油画 的 画布
screen.blit 方法可以在画布上绘制很多图像
import pygame
pygame.init()
# 创建游戏的窗口 480 * 700
screen = pygame.display.set_mode((480, 700))
# 绘制背景图像
# 1> 加载图像数据
bg = pygame.image.load("./images/background.png")
# 2> blit 绘制图像
screen.blit(bg, (0, 0))
# 3> update 更新屏幕显示
pygame.display.update()
while True:
pass
pygame.quit()
# 绘制飞机
hero = pygame.image.load("./images/me1.png")
screen.blit(hero, (150, 300))
pygame.display.update()
例如:英雄、敌机、子弹...
这些图像有可能会彼此重叠或者覆盖,display.update() 会将 画布
的 最终结果 绘制在屏幕上,这样可以提高屏幕绘制效率,增加游戏
的流畅度。
所以我们可以在 screen 对象完成 所有 blit 方法之后,统一调用一
次 display.update 方法,同样可以在屏幕上 看到最终的绘制结果。
五、游戏循环和游戏时钟
5.1 游戏动画的的实现原理
跟 电影 的原理类似,游戏中的动画效果,本质上是 快速 的在屏
幕上绘制 图像。电影是将多张 静止的电影胶片 连续、快速的播放,
产生连贯的视觉效果!
一般在电脑上 每秒绘制 60 次,就能够达到非常 连续 高品质 的动
画效果,每次绘制的结果被称为 帧 Frame
剩余33页未读,继续阅读
资源评论
CN
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功