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

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

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

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

注意:在 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()

程序的运行结果如下:

图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区域位置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python使用Pygame实现时钟效果

    本文实例为大家分享了Python使用Pygame实现时钟效果的具体代码,供大家参考,具体内容如下 import pygame,sys,math,random from pygame.locals import * from datetime import datetime,date,time def print_text(font,x,y,text,color=(255,255,255)): imgText=font.render(text,True,color) screen.blit(img

  • pygame实现滑块接小球游戏

    用pygame做一个滑块接小球的游戏,供大家参考,具体内容如下 先上图 游戏很简单也很弱智,主要用到了pygame画圆,画方块,随机数等,可以锻炼基本的鼠标控制,游戏设计思维,简单地碰撞判断等,废话不多说,上代码 写之前,先思考能用到哪些参数 pygame.init() screen = pygame.display.set_mode((800, 600)) # 生命和得分 lives = 3 score = 0 # 设置颜色 white = 255, 255, 255 yellow = 255

  • 教你如何在Pygame 中移动你的游戏角色

    Pygame是一组跨平台的 Python 模块,专为编写视频游戏而设计.它包括旨在与 Python 编程语言一起使用的计算机图形和声音库.您可以使用 pygame 创建不同类型的游戏,包括街机游戏.平台游戏等等. 使用的图像: 你可以控制玩家的移动.为此,首先使用 pygame 的 display.set_mode() 方法创建一个显示对象,并使用 pygame 的 image.load() 方法添加玩家的精灵.set_mode() 函数用于初始化显示表面或窗口.size 参数是一对代表宽度和高

  • 关于python pygame游戏进行声音添加的技巧

    目录 一.启动mixer进程 二.创建声音目录 三.添加声音到 Pygame 四.触发一个声音 Pygame的mixer 模块可以依据命令播放一个或多个声音,并且也可以将这些声音混合在一起. 而获得声音需要四个步骤: 一.启动mixer进程 首先,在你代码的设置部分,启动 mixer进程. pygame.init() pygame.font.init() pygame.mixer.init() # add this line 二.创建声音目录 首先在你的游戏目录中创建一个新的目录,可以命名为so

  • Python Pygame中精灵和碰撞检测详解

    Pygame精灵和碰撞检测 今天来看看python最出名的游戏库pygame.学习两个名词:精灵和碰撞检测. 精灵英文字母是Sprite.Sprite是二维的图形,在游戏中可以用做各种物品,例如人物,道具,反正所有一切展现在游戏图像中的都可以用Sprite. 而碰撞检测就是检测两个Sprite之间是否有碰撞.例如游戏中的吃金币,吃豆豆,打敌人都可以用到碰撞检测. class Sprite(pygame.sprite.Sprite): def __init__(self, pos): pygame

  • pygame库pgu使用示例代码

    目录 前言 一.pgu是什么? 二.使用步骤 1.安装库 2.制作按钮弹窗 3.制作事件触发弹窗 4.两种模式完整代码 总结 前言 现在用pygame制作小游戏的人越来越多,但是pygame它是没有弹窗机制的 一般解决这个问题我们会使用tkinter库或者pgu库两种方式 其中pgu库还没有很适合新手的一个手册介绍,只有下载文件中的一些函数的例子与说明,因此本文主要介绍pgu由按钮与设定事件触发的两种方式 此外还解决了在pygame的窗口下弹窗的问题 一.pgu是什么? pgu全称是Phil's

  • pygame实现时钟效果

    用pygame做一个时钟,供大家参考,具体内容如下 刚刚学习pygame,由于基础实在太差,每个例子都要反复写逐句研究才能基本弄懂,这次做一个简单的有时针.分针.秒针,能正确行走的表...例子不难,但是还是能掌握一些基本的知识点,比如xy坐标的计算,画圆,文字处理等.小白如我可以借鉴下,我认为学习还是以逻辑为主,所以我尽量还原初学时候的逻辑步骤,不啰嗦了,开整! 前期准备 这次我们用到的主要是pygame,math,datetime几个库,datetime.today()可以获取当前时间,mat

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

    Rect(rectangle)指的是矩形,或者长方形,在 Pygame 中我们使用 Rect() 方法来创建一个指定位置,大小的矩形区域.函数的语法格式如下: rect =pygame.Rect(left,top,width,height) Rect 表示的区域必须位于一个 Surface 对象之上,比如游戏的主窗口(screen).上述方法由四个关键参数值构成,分别是 left.top.width.height,为了方便大家理解这些距离的含义,下面给出了一张示意图: 注意:在 Pygame 中

  • 微信小程序学习笔记之获取位置信息操作图文详解

    本文实例讲述了微信小程序学习笔记之获取位置信息操作.分享给大家供大家参考,具体如下: 前面介绍了微信小程序文件上传.下载操作.这里分析一下获取位置信息操作. [获取当前位置信息]wx.getLocation() getlocation.wxml: <view> <button bindtap="getlocation">获取位置</button> </view> getlocation.js: Page({ getlocation: fu

  • 详解pygame中Rect对象

    目录 class pygame.Rect Rect 对象的属性: 方法 剪切图片的应用 class pygame.Rect Rect 对象的属性: Rect 表示的区域必须位于一个 Surface 对象之上,比如游戏的主窗口(screen).上述方法由四个关键参数值构成,分别是 left.top.width.height,为了方便大家理解这些距离的含义,下面给出了一张示意图: 注意:在 Pygame 中以游戏主窗口的左上角为坐标原点. 1.返回一个坐标数字 x,y top, left, bott

  • Python pygame绘制文字制作滚动文字过程解析

    这篇文章主要介绍了Python pygame绘制文字制作滚动文字过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个步骤: 初始化字体模块 pygame.init() 创建一个字体对象 可以从文件或者系统内字体选取 pygame.font.SysFont('幼圆',50) 绘制文本对象. a.render("测试字体",True,(

  • python飞机大战 pygame游戏创建快速入门详解

    本文实例讲述了python飞机大战 pygame游戏创建.分享给大家供大家参考,具体如下: 目标 项目准备 使用 pygame 创建图形窗口 理解 图像 并实现图像绘制 理解 游戏循环 和 游戏时钟 理解 精灵 和 精灵组 项目准备 新建 飞机大战 项目 新建一个 hm_01_pygame入门.py 导入 游戏素材图片 游戏的第一印象 把一些 静止的图像 绘制到 游戏窗口 中 根据 用户的交互 或其他情况,移动 这些图像,产生动画效果 根据 图像之间 是否发生重叠,判断 敌机是否被摧毁 等其他情

  • Pygame框架实现飞机大战

    本文实例为大家分享了Pygame框架实现飞机大战的具体代码,供大家参考,具体内容如下 飞机大战主游戏类 """ 项目名称:简单飞机大战游戏 基于框架:Pygame 开发日期:2020.07 开发人员:Y 版本:**** """ import sys # 导入内置模块sys 调用sys.exit() import pygame # 导入第三方模块pygame from plane_sprites import * # 导入自定义模块内所有工具 cl

  • pygame用blit()实现动画效果的示例代码

    pygame的的实现动画的方法有很多,但是都是围绕着表面进行的,也就是说实现动画的方式不同,但是本质其实都是对表面的不同处理方式而已. 原理其实很简单,有点像我们做地铁的时候隧道里的广告一样.我们设置一个窗口.然后让窗口在一个画着很多帧图像的图上面移动,当我们透过这个窗口去观察这幅图的时候,只要窗口沿着一个方向去运动,那么就会产生动画效果. 今天我介绍的是通过块传输的方法去实现. surface.blit(image,(x,y),rect)  在这里surface.blit()这个方法应该大家都

  • Pygame如何使用精灵和碰撞检测

    在开始学习相关知识点之前,我们有必要先学习精灵和碰撞检测的含义. 精灵(英文译为 Sprite),其实在一个游戏程序中,精灵本质指的是一张张小尺寸的图片,比如游戏中的各种道具.人物.场景装饰等,它们都可以看做成一张张小的"精灵"图.除此之外,人物的移动也可以看做是一系列小精灵图构成的序列(按帧组成的序列),如下图所示: 图1:动作逐帧分解图 如果将逐帧分解后的动作,按照一定的频率播放,那么就形成了动画精灵,您将会看到雄鹰展翅高飞.人在策马奔腾.运动员奋力跳远. 精灵有个特点就是允许精灵

  • Pygame Font模块使用教程

    文本是任何一款游戏中不可或缺的重要要素之一,Pygame 通过pygame.font模块来创建一个字体对象,从而实现绘制文本的目的.该模块的常用方法如下所示: 方法 说明 pygame.font.init() 初始化字体模块 pygame.font.quit()  取消初始化字体模块 pygame.font.get_init()  检查字体模块是否被初始化,返回一个布尔值. pygame.font.get_default_font()  获得默认字体的文件名.返回系统中字体的文件名 pygame

  • 教你使用Python的pygame模块实现拼图游戏

    目录 pygame介绍 安装pygame pygame常用模块 pygame入门案例 pygame实现拼图游戏 总结 pygame介绍 Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows.Linux.Mac OS 等操作系统,具有良好的跨平台性.Pygame 由 Pete Shinners 于 2000 年开发而成,是一款免费.开源的的软件包,因此您可以放心地使用它来开发游戏,不用担心有任何费用产生. Pygame 在 SDL(Simple Di

随机推荐