pygame中get_rect的属性,pygame.rect是什么

  pygame中get_rect的属性,pygame.rect是什么

  Rect是pygame中的矩形对象。它包含了一些属性,主要是两块:坐标和长宽。Pygame通过Rect对象存储和操作矩形区域。本文主要介绍pygame中的Rect对象。有需要的朋友可以参考一下。

  00-1010 classpygame . rect对象属性:应用方法剪切图片

  

目录

 

  

class pygame.Rect Rect

 

  Rect表示的区域必须位于一个曲面对象上,比如游戏的主屏幕。上述方法由四个关键参数值组成,即left、top、width和height。为了方便大家理解这些距离的含义,下面给出一个示意图:

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

  1.返回一个坐标数。

  x,y

  顶部、左侧、底部、右侧

  centerx,centerysize

  宽度、高度

  w,h;

  2.返回(X,Y)坐标数组

  左上(左上)

  左下角(左下角)

  右下(右下)

  Midtop(中上)

  中间偏左(中间偏左)

  中底

  中右(中右)

  中心(中心点坐标)

  

对象的属性:

 

  Rect是一个Pygame对象,用于存储直角坐标。

  Rect(左、上、宽、高)- Rect

  Rect((左,上),(宽度,高度))- Rect

  Rect(对象)- Rect

  Rect(rectangle)指矩形,或长方形。在Pygame中,我们使用Rect()方法创建一个指定位置和大小的矩形区域。

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

  方法描述返回值pygame。Rect.copy()—复制Rect对象并返回一个与原始矩形具有相同位置和大小的新矩形。Rect对象pygame。Rect . Move()-移动Rect对象并返回按给定偏移量移动的新矩形。x和y参数可以是任何整数值,正数或负数。Rect对象pygame。Rect.move_ip()—就地移动Rect对象,这与Rect.move()方法相同,但只在不返回副本的情况下操作。PyGame。Rect . infect()—放大和缩小rect对象的大小,并返回一个新的矩形,其大小根据给定的偏移量进行了更改。矩形仍然围绕其当前中心。负值将缩小矩形。Rect对象pygame。Rect.inflate_ip()—就地放大和缩小Rect对象的大小,与Rect.inflate()方法相同,但只进行操作,不返回副本。PyGame。Rect . clamp()—将一个Rect对象移动到另一个Rect对象的中心,并返回已移动到参数Rect中的新矩形。如果矩形太大而无法放入,它将在参数rect内居中,但其大小不会改变。Rect对象pygame。Rect . clamp _ IP()-将一个Rect对象移动到另一个Rect对象的中心。Rect.clip()—获取两个Rect对象的重叠部分,并返回一个新的矩形,该矩形被裁剪为完整的位。

  于参数矩形内。如果两个矩形开始时没有重叠,则返回一个0大小的矩形。Rect对象pygame.Rect.union()— 将两个 Rect 对象合并,返回完全覆盖两个提供的矩形区域的新矩形。新矩形内可能有原始矩形未覆盖的区域。Rect对象pygame.Rect.union_ip()— 原地将两个 Rect 对象合并,与 Rect.union() 方法相同,但仅操作无返回副本。Nonepygame.Rect.unionall()— 将多个 Rect 对象合并Rect对象pygame.Rect.unionall_ip()— 原地将多个 Rect 对象合并Nonepygame.Rect.fit()— 按照一定的宽高比调整 Rect 对象,返回一个新矩形,该矩形被移动并调整大小以适应另一个矩形。保留原始矩形的纵横比,因此新矩形的宽度或高度可能小于目标矩形。Rect对象pygame.Rect.normalize()— 翻转 Rect 对象(如果尺寸为负数),如果矩形的宽度或高度为负,则此操作将翻转矩形的宽度或高度。矩形将保持在同一位置,只交换边。Nonepygame.Rect.contains()— 检测一个 Rect 对象是否完全包含在该 Rect 对象内,contains(Rect) -> bool当参数完全在Rect内时返回true。boolpygame.Rect.collidepoint()— 检测一个点是否包含在该 Rect 对象内,如果给定点位于矩形内,则返回true。沿右边缘或下边缘的点不被视为位于矩形内。注意:对于矩形和直线之间的碰撞检测,可以使用 clipline() 方法。boolpygame.Rect.colliderect()— 检测两个 Rect 对象是否重叠,如果矩形的任何部分重叠(除了顶部+底部或左侧+右侧边缘),则返回true。注意:对于矩形和直线之间的碰撞检测,可以使用 clipline() 方法。boolpygame.Rect.collidelist()— 检测该 Rect 对象是否与列表中的任何一个矩形有交集,测试矩形是否与一系列矩形中的任何矩形碰撞。返回找到的第一个冲突的索引。如果未找到冲突,则返回索引-1。boolpygame.Rect.collidelistall()— 检测该 Rect 对象与列表中的每个矩形是否有交集,返回包含与矩形冲突的矩形的所有索引的列表。如果未找到相交矩形,则返回空列表。boolpygame.Rect.collidedict()— 检测该 Rect 对象是否与字典中的任何一个矩形有交集boolpygame.Rect.collidedictall()— 检测该 Rect 对象与字典中的每个矩形是否有交集[(key, value), …]

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

  

import pygame

 

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

  

rect1.left = 30

 

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

  

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

 

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

  

import pygame

 

  

 

  

剪切图片的应用

 

  1)加载图片shoot_img = pygame.image.load(r'F:Python STUDYimagesme11.png')

  2)矩形剪切图片

  

hero1_rect = pygame.Rect(0, 0, 136, 168)

 

  到此这篇关于详解pygame中Rect对象的文章就介绍到这了,更多相关pygame中Rect对象内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: