Pygame Rect区域位置的使用(图文)


Posted in Python onNovember 17, 2021

Rect(rectangle)指的是矩形,或者长方形,在 Pygame 中我们使用 Rect() 方法来创建一个指定位置,大小的矩形区域。函数的语法格式如下:

rect =pygame.Rect(left,top,width,height)

Rect 表示的区域必须位于一个 Surface 对象之上,比如游戏的主窗口(screen)。上述方法由四个关键参数值构成,分别是 left、top、width、height,为了方便大家理解这些距离的含义,下面给出了一张示意图:

Pygame Rect区域位置的使用(图文)

注意:在 Pygame 中以游戏主窗口的左上角为坐标原点。

下面看一组简单的使用示例,如下所示:

import pygame
pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption('c语言中文网')
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
rect1 = pygame.Rect(50,50,100,100)
# 在原图的基础上创建一个新的子图(surface对象)
image_child= image_surface.subsurface(rect1)
rect2 = image_child.get_rect()
#输出的矩形大小为 100*100
print(rect2)
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    #在屏幕上显示子图的区域
    screen.blit(image_child,rect1)
    pygame.display.update()

程序的运行结果如下:

Pygame Rect区域位置的使用(图文)

图1:程序运行结果

从上述运行结果可以看出,我们在图片上截取了一个和 rect1 同样大小的矩形区域(100*100)。

Rect(矩形区域)对象还提供了一些常用方法。如下表所示:

 

方法 说明
pygame.Rect.copy() 复制矩形
pygame.Rect.move() 移动矩形区域,接受一个列表参数
pygame.Rect.move_ip() 移动矩形(无返回)
pygame.Rect.inflate() 增大或缩小矩形大小
pygame.Rect.clamp() 将矩形移到另一个矩形内
pygame.Rect.union() 返回一个两个矩形合并后的矩形。
pygame.Rect.fit() 按纵横比调整矩形的大小或移动矩形。
pygame.Rect.contains() 测试一个矩形是否在另一个矩形内
pygame.Rect.collidepoint()  测试点是否在矩形内
pygame.Rect.colliderect() 测试两个矩形是否重叠

同时 Rect 对象也提供了一些关于矩形大小的常用的属性,如下所示:

x,y  表示矩形距离 x、y 轴的距离
top, left, bottom, right #在坐标系内描述矩形的大小
topleft, bottomleft, topright, bottomright #返回一个描述矩形大小的元组
midtop, midleft, midbottom, midright #返回一个描述矩形大小的元组
center, centerx, centery #(centerx,centery)表示矩形中央坐标(x,y)的值
size, width, height
w,h  #用于描述矩形的width、height

下面看一组简单的示例演示,如下所示:

import  pygame
# 对应left/top/width/height
rect1 = pygame.Rect(0,0,100,100)
print('x的值是{};y的值是{}'.format(rect1.x,rect1.y))
print('bottom的值是{};right的值是{}'.format(rect1.bottom,rect1.right))
# 设置居中的距离
print(rect1.center,rect1.centerx,rect1.centery)
# 返回值为 (centerx,top)
print(rect1.midtop)
# 返回值为 (right,centery)的元组
print(rect1.midright)
# 返回值为(left,bottom)
print(rect1.bottomleft)
# 返回矩形区域大小,元组格式
print(rect1.size)

输出结果如下:
x的值是0;y的值是0
bottom的值是100;right的值是100
#设置中心努力
(50, 50) 50 50
(50, 0)
#midright
(100, 50)
#bottomleft
(0, 100)
#size
(100, 100)

我们还可以通过属性对来设置,或者者更改矩形区域的大小,如下所示:

rect1.left = 30 
rect1.center = (70,70)

除了通过 Rect 对象来构造一个矩形区域之外,我们还可以使用rect属性来构建一个矩形区域。在 Pygame 中有许多函数都提供了rect属性,比如有下列函数:

surface.fill((0,0,255),rect=(100,100,100,50))

上述代码会在 surface 对象的区域内选定一个 rect 区域,并将该区域填充为蓝色(RGB(0,0,255))。

到此这篇关于Pygame Rect区域位置的使用(图文)的文章就介绍到这了,更多相关Pygame Rect区域位置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python文件和目录操作方法大全(含实例)
Mar 12 Python
Python装饰器的函数式编程详解
Feb 27 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
K-近邻算法的python实现代码分享
Dec 09 Python
使用python实现ANN
Dec 20 Python
pandas 层次化索引的实现方法
Jul 06 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
分析Python list操作为什么会错误
Nov 17 #Python
深入理解Pytorch微调torchvision模型
Nov 11 #Python
Python 中 Shutil 模块详情
Nov 11 #Python
django 认证类配置实现
Nov 11 #Python
Python Pandas数据分析之iloc和loc的用法详解
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
You might like
第七章 php自定义函数实现代码
2011/12/30 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
Python使用MONGODB入门实例
2015/05/11 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
python实现经典排序算法的示例代码
2021/02/07 Python
七一党建活动方案
2014/01/28 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
小学生环保演讲稿
2014/04/25 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
企业理念标语
2014/06/09 职场文书
植物生产学专业求职信
2014/08/08 职场文书
大学计划书范文800字
2014/08/14 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
2016年五一促销广告语
2016/01/28 职场文书