【PyGame】Rect类实战演示

这篇具有很好参考价值的文章主要介绍了【PyGame】Rect类实战演示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rect类

Rect是pygame中很重要的一个类,矩形、椭圆以及圆弧的绘制均需要通过Rect来指定,其构造函数要求输入四个参数,分别是(left, top, width, height),即左、上坐标、宽度以及高度。

下面基于Rect对象来创建一个矩形,并通过ijkl四个键对其挪动,效果如下

python中pygame.rect函数,Python,pygame,python,开发语言,Rect,游戏,Python游戏

代码为

import pygame
pygame.init()
screen = pygame.display.set_mode((500,300))

player = pygame.Rect(10.2, 10, 100, 100)

while True:
    if pygame.QUIT in [e.type for e in pygame.event.get()]:
        pygame.quit()
        break
    screen.fill("purple")
    pygame.draw.rect(screen, "red", player, 40)
    keys = pygame.key.get_pressed()
    if keys[pygame.K_j]:
        player.y -= 1
    if keys[pygame.K_k]:
        player.y += 1
    if keys[pygame.K_h]:
        player.x -= 1
    if keys[pygame.K_l]:
        player.x += 1
    pygame.display.flip()

其中,player是一个Rect对象,初始化时,其左上角的坐标为 ( 10 , 10 ) (10,10) (10,10),且边长为100。在主循环中,每次循环,都会重新绘制一个矩形,这个矩形以player为模板,且四边宽度为40,故而绘制结果显示出一个镂空的矩形。

方法

Rect中提供了如下方法

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

下面以union为例,通过动画来展示其运算逻辑,

pygame.init()
screen = pygame.display.set_mode((500,300))

p1 = pygame.Rect(10, 100, 100, 100)
p2 = pygame.Rect(400, 100, 100, 100)

while True:
    if pygame.QUIT in [e.type for e in pygame.event.get()]:
        pygame.quit()
        break
    screen.fill("purple")
    rect = p1.union(p2)
    pygame.draw.rect(screen, "red", rect, 40)
    pygame.draw.rect(screen, "green", p1, 10)
    pygame.draw.rect(screen, "blue", p2, 10)
    keys = pygame.key.get_pressed()
    if keys[pygame.K_j]:
        p2.x -= 1
    if keys[pygame.K_k]:
        p2.x += 1
    if keys[pygame.K_a]:
        p1.x -= 1
    if keys[pygame.K_s]:
        p1.x += 1
    pygame.display.flip()

效果为

python中pygame.rect函数,Python,pygame,python,开发语言,Rect,游戏,Python游戏

其中,绿色矩形为 p 1 p_1 p1,蓝色矩形为 p 2 p_2 p2,二者通过asjk四个按键来控制。而union运算,相当于选取一个矩形,将二者框起来,并形成一个新的矩形。文章来源地址https://www.toymoban.com/news/detail-766373.html

到了这里,关于【PyGame】Rect类实战演示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学

    大家好,未来的开发者们请上座 随着人工智能的发展,强化学习基本会再次来到人们眼前,遂想制作一下相关的教程。强化学习第一步基本离不开虚拟环境的搭建,下面用大家耳熟能详的贪吃蛇游戏为基础,制作一个Agent,完成对这个游戏的绝杀。 万里长城第一步:用pytho

    2024年01月21日
    浏览(61)
  • pygame 绘制爱心函数 r = 1-cos(θ). Tag: python | 图形界面 | GUI

    最近做数学题,遇到一个“爱心函数” 即 r = 1 - cos(θ) . ——极坐标下函数表达式 用参数方程表示即: x = (1 - cos(θ)) * cos(θ) y = (1 - cos(θ)) * sin(θ) 放个函数图像 函数详情点这里 代码原理很简单,采用极坐标的方式,使用一个变量 t(即 θ ),每次循环自增(充当计时器/角度

    2024年02月13日
    浏览(37)
  • 第一篇【传奇开心果系列】Python的游戏库pygame技术点案例示例:深度解读实战开发飞机大战经典游戏案例

    开发飞机大战游戏不仅能满足广大玩家的娱乐需求,提供寓教于乐的学习机会,也是技术实践、创新实验和商业探索的重要载体,具有多维度的社会与经济价值。 开发飞机大战游戏具有多方面的意义,涵盖娱乐、教育、技术实践与创新等多个层面: 娱乐价值 : 休闲娱乐 :

    2024年04月23日
    浏览(86)
  • 【Pygame实战】变异狗大战:据说是最近还不错的小游戏,这一个个玩到表情崩坏,点开即玩,赶紧来~(Python代码搞笑版本)

    只有你想不到,没有我找不到写不了的好游戏! 哈喽。我是你们的栗子同学啦~ 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 今天小编去了我朋友家里玩儿,看到了一个敲可爱的小狗狗🐏,是我朋友养的萨摩耶啦。 心里羡慕一下下蛮。嘿嘿,但是我养肯定养

    2024年02月11日
    浏览(70)
  • selenium定位rect元素

    rect元素的属性如下: x:此属性确定矩形的x坐标。 值类型:| ; 默认值:0 动画:是 y:此属性确定矩形的y坐标。 值类型:| ; 默认值:0 动画:是 width:此属性确定矩形的宽度。 值类型:自动|| ; 默认值:自动;动画:是 height:此属性确定矩形的高度。 值类型:自动|| ; 默认

    2024年02月15日
    浏览(46)
  • Python Pygame使用详解

    Python Pygame使用详解 Pygame是一个强大的Python库,用于开发2D游戏和多媒体应用程序。它基于Simple DirectMedia Layer(SDL)库,提供了一组功能丰富的工具和函数,使开发者能够轻松创建游戏、图形和音频应用程序。本文将详细介绍如何使用Pygame库进行游戏开发,并提供相应的源代码

    2024年02月03日
    浏览(41)
  • 【Python-Pygame】

    Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,它是一个免费、开源的第三方软件包, 支持多种操作系统,具有良好的跨平台性(比如 Windows、Linux、Mac 等)。 Pygame 教程适合想要了解 Python 游戏开发的人员学习。 SDL 是一套开放源代码的跨平

    2024年04月23日
    浏览(27)
  • Python游戏篇:pygame

    pygame专门用于多媒体(如电子游戏开发),其中包含对图像、声音、视频、事件、碰撞等支持, 如果想开发3D游戏,pygame就显得力不从心了,可以看看panda3d。 pygame中的draw模块可以在窗口上绘图如线条、矩形、多边形、圆、椭圆、圆弧等。 pygame中的image模块用来加载图片。

    2024年02月13日
    浏览(45)
  • Python学习笔记-Pygame

    目录 一、Pygame概述 1.安装Pyganme 2.Pygame常用模块介绍 2.1 display模块常用方法 2.2 pygame.event模块常用方法 2.3 Surface对象的常用方法 二、问题汇总 1.窗体问题 1.1 添加死循环之后出现窗体未响应。 记述关于Pyganme开发的基本知识。 Pygame是跨平台的python模块,转为电子游戏设计(包含

    2024年02月09日
    浏览(99)
  • 如何在pycharm中安装pygame游戏插件 和Python中安装pygame教程

    在用pycharm软件开发python小游戏前,需要安装pygame的插件,如何安装呢? 方法一、包管理器安装 1、在pycharm软件中定位到  file  – settings 2、定位到: project (自己的项目中)–python interpreter,选择右边的 pip 3、双击 pip ,进入查询插件界面,输入  pygame  ,进行查询这个插件

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包