Pygame中将鼠标形状设置为图片2-2

news2025/2/28 0:04:04

3 编写主程序

在主程序中,首先创建屏幕并且完成一些准备工作,之后在while循环中不断更新sprite实例即可。

3.1 创建屏幕及准备工作

创建屏幕及准备工作的代码如图5所示。

图5 创建屏幕及准备工作

其中,第20行代码调用pygame.mouse模块中的set_visible()方法,将其参数设置为False,表示隐藏鼠标;第22行中的going表示程序运行的标志,该值是True时表示程序继续运行,是False时表示程序终止;第23行中定义了Mouse()类的实例mouse;第24行代码使用使用pygame.sprite模块中的RenderPlain()方法将mouse加入到Group中,实际上RenderPlain()方法与Group()方法的作用相同。

相关链接2 创建屏幕的详细介绍请参考

Pygame显示文字_棉猴的博客-CSDN博客

相关链接3 sprite与Group的详细介绍请参考

Pygame中Sprite类的使用6-1-CSDN博客

3.2 在循环中更新sprite实例

在循环中更新sprite实例的代码如图6所示。

图6 在循环中更细sprite实例

其中,第26行中的going是控制程序是否运行的标志,当用户点击屏幕右上角的退出按键后,根据28-30行的代码,将going设置为False,此时while循环结束,程序退出;第27行代码的作用是重绘屏幕背景,这样就能覆盖之前鼠标显示的图片;31-32行代码通过Group来更新和绘制sprite实例,即调用了Mouse类的update()方法和draw()方法进行更新和绘制;最后第33行将绘制好的图片在屏幕上显示出来。

4 完整代码

以上提到的完整代码如下所示。

import pygame

def load_image(name):
    image = pygame.image.load(name)
    image = image.convert()
    colorkey = image.get_at((0,0))
    image.set_colorkey(colorkey, pygame.RLEACCEL)
    return image, image.get_rect()

class Mouse(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image, self.rect = load_image('qiu.png')
    def update(self):
        self.rect.topleft = pygame.mouse.get_pos()
        self.rect.move_ip((0,0))
        
pygame.init()
screen = pygame.display.set_mode((1280, 480))
pygame.mouse.set_visible(False)
screen.fill((170, 238, 187))
going = True
mouse = Mouse()
allsprites = pygame.sprite.RenderPlain(mouse)

while going:
    screen.fill((170, 238, 187))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            going = False
    allsprites.update()
    allsprites.draw(screen)
    pygame.display.flip()
pygame.quit()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1087283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

足球公平盘、实力盘和盘口合理性的模型探讨

1. 公平盘模型事件 9月份,突然间好多人加我vx问及公平盘模型能否依靠下图做出来,几年没有人提及公平盘,突然好多人这么一问应该是从同一个讨论群过来的。 1.1 公平盘介绍 按照字面意思:真实反应即将开赛的两支球队在主客场时的让…

【Spring Boot】RabbitMQ消息队列 — RabbitMQ入门

💠一名热衷于分享知识的程序员 💠乐于在CSDN上与广大开发者交流学习。 💠希望通过每一次学习,让更多读者了解我 💠也希望能结识更多志同道合的朋友。 💠将继续努力,不断提升自己的专业技能,创造更多价值。🌿欢迎来到@"衍生星球"的CSDN博文🌿 🍁本…

微服务11-Sentinel中的授权规则以及Sentinel服务规则持久化

文章目录 授权规则自定义异常结果规则持久化实现Push模式 授权规则 根据来源名称对请求进行拦截 ——>我们需要解析来源名称(RequestOriginParser默认解析都为default),所以我们要自定义一个实现类(根据请求头解析&#xff0c…

MIT 6.S081 Operating System/Fall 2020 macOS搭建risc-v与xv6开发调试环境

文章目录 本机配置安装环境Homebrew执行安装脚本查看安装是否成功 RISC-V tools执行brew的安装脚本 QEMUXV6 测试有用的参考链接(感谢前辈)写在结尾 本机配置 电脑型号:Apple M2 Pro 2023 操作系统:macOS Ventura 13.4 所以我的电…

CTFHub SSRF 题目

文章目录 CTFHub SSRF 通关教程1. 内网访问,伪协议利用1.1 内网访问1.2 伪协议读取文件1.3 端口扫描 2. POST请求,上传文件,FastCGI协议,Redis协议2.1 POST请求2.2 上传文件2.3 FastCGI协议2.4 Redis协议 3. Bypass系列3.1 URL By…

中国人民大学与加拿大女王大学金融硕士究竟适合金融国企人还是金融外企人呢?

随着中国经济的快速发展,金融业已经成为国民经济的重要支柱产业。在这个背景下,金融国企和金融外企的发展也日益繁荣。想发展不断学习的脚步是一刻不能停歇的,由此,免联考双证的中国人民大学与加拿大女王大学金融硕士就开始逐渐走…

有哪些好用的电容笔?苹果平板触控笔推荐

对于学生党来说,用哪种电容笔比较合适?苹果的原装电容笔,尽管性能很好,功能也很多,却就是太贵了,一般人根本买不起,而且重量还挺重,握在手上使用久了会很费劲。如果你只是想单纯地用…

申博|2024国内985院校申博时间参考

转眼已近10月中旬,小编给大家总结了2024年国内985院校博士申请预计时间汇总,一般各高校都是临近博士报名启动才会发布具体的招生通知,所以想要申博的同学们可以在日期临近前注意查看高校官方信息。 以下申请时间为2023年博士申请的时间&…

4.添加3DTiles

愿你出走半生,归来仍是少年! 在构建好的三维场景中添加3DTile(本地离线数据以及在线服务)。 1.在线服务 首先需要准备一个已发布出来的3DTile服务. 打开Cesium面板,添加Blank 3D Tileset ,然后选中该对象,…

WIFI产品使用指导说明

一、登录服务器 二、新建产品 三、设置WIFI产品的联网参数 1、恢复出厂设置 2、设置参数 四、操作更新 网络连接特性: 路由器掉线得情况下, 第一次,搜索网络1分钟间隔第二次,搜索网络1分钟间隔第三次,搜索网络…

git下载bos仓库代码

安装git 插件 登录git 填写仓库地址后 把仓库代码 下载某个文件夹, 然后再拷贝到自己的 解决方案中

开发信群发技巧有哪些?外贸邮件怎么群发?

如何做外贸开发信群发?外贸开发信群发用什么邮箱好? 无论你是一位销售专业人员,一名初创企业家还是一家大型公司的市场营销团队成员,都能受益于掌握这些技巧。下面蜂邮EDM将为您介绍一些关键的开发信群发技巧,帮助你在…

批量执行insert into 的脚本报2006 - MySQL server has gone away

数据库执行批量数据导入是报“2006 - MySQL server has gone away”错误,脚本并没有问题,只是insert into 的批量操作语句过长导致。 解决办法: Navicat ->工具 ->服务器监控->mysql ——》变量 修改max_allowed_packet大小为512…

树莓派 5添加对PCIe 2.0支持,耗时七年花费2500万美元

据了解,早在上个月底,树莓派 5就已经正式发布,该机主要是提升了硬件性能,添加了对 PCIe 2.0的支持。 树莓派 5采用了 64 位四核 Arm Cortex-A76 处理器,频率为 2.4GHz,相比上一代性能提高了 2~3倍。并配备…

LeetCode【128】最长连续序列

题目: 分析: 1、最长连续序列的长度为 y-x1,如1-4:4-11 4 2、不要被这里的On误导,不敢使用双层循环 3、只要找到最小的数值,并由此开始计算,不产生重复计算,则为On 代码&#xf…

【C++】从认识using namespace std开始进入C++的学习

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》 🌝每一个不曾起舞的日子,都是对生命的辜负 📣📣📣今天博主…

AI秘籍:助您提升办公和学习效率

AI产品在提升办公和学习效率上可是有一手呢!看看下面这些实用的AI产品,让你分分钟变成效率达人! 1. 语音助手:不论是Siri、Cortana还是小冰,一个简单的语音指令就能帮你执行任务,比如发邮件、设提醒、查资料…

九、【裁剪工具组】

文章目录 裁剪工具透视裁剪工具切片工具切片选择工具 裁剪工具 使用裁剪工具,可以将目标图像裁剪成任意我们所需要的大小;使用时按住shift键可以根据对角线来定义裁剪图像的大小,按住ALT键,可以根据等比例大小来裁剪图像。 拉直…

11. SpringBoot项目中参数获取与响应

SpringBoot项目中参数获取与响应 1. 程序结构&通信方式 程序结构: C/S : 客户端/服务器端 -Main方法。 -效果炫目、数据相对安全。 -公司成本高,因为要分别开发客户端和服务器端。 B/S: 浏览器端/服务器端 -效果依赖于浏览…

【网络安全 --- 靶场搭建】sqlserver SQL注入靶场搭建(提供资源)

一,资源下载地址 百度网盘资源下载链接: 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.bai…