相关动态
桌面宠物 ① 通过python制作属于自己的桌面宠物
2024-12-30 06:27

        桌面宠物的各种动画效果,可以看作是由一个个GIF动图拼接而成,我们需要准备多组GIF动图来实现桌面宠物的动作切换。

        最好选取是白底的GIF动图。

1.2.1 通过pr实现视频转GIF

        pr在导出的时候选择动画GIF可以直接导出GIF动图。

        当然了想要白底就需要自已用“蒙版”和画笔工具自己抠图了。

1.2.2 通过ps实现图片组转GIF

        ps会高级一点,首先点击最上方的窗口,再点击时间轴,在下方显示出的时间轴的最右边的加号可以添加你想要添加的图片。图层右边可以选择删除背景。

        然后选择最上方的文件,选择导出,选择导出为web所用格式旧版,即可

1.2.3 百度一下,获取网上现成的GIF资源

① 百度:“制作GIF动图”

② 百度    “GIF动图资源”

你想要的角色人物素材都在这里!最实用的2d游戏素材! - 知乎

        项目的目录结构整体如下:main.py为主程序代码。

        normal下的GIF图是宠物平常会随机切换的动作GIF图, click下面的GIF图是点击宠物之后的宠物动作的GIF图

        dialog.txt 记录了宠物的对话信息

         tigerIcon.jpg是缩小到托盘后托盘图标的图片

2.2.1 引用包

        os包用于加载文件,sys包用于退出程序,random包用于程序中一些需要调用随机数的操作。其他的三个包则是用于实现桌面宠物的基础。

 

2.2.2 主代码部分

 

2.2.3 代码运行流程

整个运行流程为

(1)通过self.init():实现窗体的初始化,宠物的GIF图在这个窗体中播放。

(2)通过self.initPall():配置托盘化

(3)通过self.initPetImage():将宠物的静态GIF资源,包括对话和GIF动图进行加载

(4)通过self.petNormalAction():实现宠物随机切换动作和语句的功能

 

① 加载显示GIF动图的窗体,通过函数init实现,其代码配置如下

        这几句的作用是对展示宠物的窗体进行一些初步的设置,使得白色GIF图能够去掉背景的白色,将GIF图透明的展示出来

 

② 实现能托盘显示的功能,通过函数initPall实现,其代码配置如下

        主要有下面这几个操作

        (1)读取静态图片资源设置托盘化的图标

         (2)设置托盘化图片点击右键显示的菜单,并对这些菜单的点击操作进行设置

流程代码如下: 

 

其中‘退出’项涉及到的函数代码如下

 

其中‘显示’项涉及到的函数代码如下

 

③ 宠物静态资源的加载,通过函数initPetImage实现,其代码配置如下

        静态资源的加载主要涉及两个部分,对话框内容的加载和图片内容的加载。

 

        其中我们希望宠物出现的位置是随机的而不是固定的,那么便通过 randomPosition()实现宠物出现位置的随机。

 

④ 宠物正常待机,实现随机切换动作,对话框通过函数petNormalAction实现,其代码配置如下

        这里通过QTimer实现定时操作,到达设置的时间即调用相关的函数。其中condition为标识宠物状态的flag,0为平常状态,1为点击状态,这个状态可按照自己的喜好拓展。talk_condition同理,为标识宠物对话状态的flag。

 

         其中,通过randomAct实现宠物动作的随机切换,通过talk实现对话框内容的切换,其代码如下

        self.pet1和self.dialog在初始化的时候即定义了。这里可以按照自己的喜好进行拓展,用多个if-else if实现多种状态的切换和定义,增加一些喂食,玩耍动作等。

 

⑤ 实现能够拖动宠物,通过多个自带函数实现,其代码配置如下

        实现宠物的拖动主要通过三个函数实现,mouserPressEvent负责在鼠标点击判断其是否在宠物窗口上,如果在则将宠物和鼠标的位置绑定,并执行点击改变宠物GIF图和对话框的操作。

        mouseMoveEvent实现按下后宠物跟着鼠标移动

        mouseReleaseEvent将之前的锁定取消

 

⑥ 实现宠物右键点击具有交互功能,通过函数contextMenuEvent实现,其代码配置如下

        退出操作通过 qApp.quit()实现,直接退出相应的QT程序。

        隐藏操作则通过self.setWindowOpacity(0)实现,这个可控制窗口的透明度。

 

⑦ 鼠标移到宠物上的时候显示为闭合的手

 
 
 

如果提示黄色提示pip版本问题,照着上面的提示修改即可

        进入打开cmd命令行,进入项目目录,输入命令

 

         打包完成后,在生成的dist里面可以看到main.exe文件

         

        这里因为我自己的原因,需要将main.exe放到主目录下才可正常运行

链接:https://pan.baidu.com/s/1YYXzGpmCJkz43tYuki1wFQ 
提取码:3gkw

DeskTopPetEXE为带打包好的文件。

DeskTopPet是打包前的文件。

写之前挺开心的,写的时候也挺开心的,写完之后就有点索然无味了。用python做一个简单的桌面宠物,我看到的方法除了我参考的这种加载GIF图外

Python 玩出花儿,把罗小黑养在自己桌面_AI科技大本营的博客-CSDN博客

还有一种通过加载图片帧的方式实现

Python实现桌面宠物_hxxjxw的博客-CSDN博客_python桌面宠物

这种通过图片帧的加载实现,需要编写一个自定义配置类cfg.py,很多人也不把这个东西代码给出来

 

这种方式宠物动作的实现,是根据上面这个配置文件进行配置的,比如[1,2,3]就代表这个pet_1文件夹下对应1,2,3号图片组成一个动作。我看到有人直接把这个当作一个动作赋值给宠物,然后图片就会莫名鬼畜。

纯粹是因为无聊写着玩的,下次再试试能不能弄个3D的🙂

    以上就是本篇文章【桌面宠物 ① 通过python制作属于自己的桌面宠物】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/news/16123.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
Shams:如果火箭季后赛早早被淘汰 他们很可能会积极追求杜兰特
直播吧04月17日讯 今日ESPN名记Shams Charania做客节目《NBA COUNTDOWN》中谈到了火箭追逐KD的可能性。Shams表示:“如果球队能
手机是什么时候出现的手机是哪个国家发明的「手机是什么时候出现的」
手机,这个如今几乎人手一部的通讯工具,其发展历程漫长而有趣。要追溯其起源,我们需要回到上世纪初。一、早期探索阶段早在20世
再建新厂、增加注资、积极纳税 北京税企协同共建优质营商环境
4月16日,北京市税务局“民企显身手”系列媒体采访活动正式启动。此次活动以“政策落实有力度、服务升级有温度、营商环境有厚度
oppo手机里的记事本在哪里手机记事本在哪里「oppo手机里的记事本在哪里」
“盾牌”是古代作战时一种手持格挡,用以掩蔽身体,抵御敌方兵刃、矢石等兵器进攻的防御性兵械,呈长方形或圆形,盾的中央向外凸
个人业务利润降30%,3万亿规模宁波银行也有“烦恼”
文 | 刘振涛资本市场进入财报披露季,上市企业过去一年的成绩令市场高度关注,特别是市场“分红大户”——上市银行的成绩备受关
闽北从观光到沉浸 解锁旅游新体验
  中新网南平4月17日电 (记者 张丽君)依托核心景区武夷山,闽北南平凭借创新的文旅融合模式,实现了从传统观光游到沉浸式深度
重新定义奢华旅游,情绪价值比“钞能力”更重要
【文/观察者网 王勇 编辑/赵乾坤】新加坡“亚洲新闻台”日前报道称,越来越多的千禧一代、Z世代以及来自亚洲和中东等新兴市场的
最便宜的红米手机——红米7A红米手机预定「最便宜的红米手机——红米7A」
5.28号下午,在红米K20系列发布会上,出现了一款史上最便宜的红米手机——红米 7A,售价仅549元起,如此便宜的手机究竟配置如何呢
如何开启手机定位功能,确保精准定位与安全使用手机定位功能在哪里开启「如何开启手机定位功能,确保精准定位与安全使用」
检查手机设置:在设定中找到“隐私”或“位置服务”选项。对于不同品牌的手机,可能会有所不同。例如,iPhone 在设置中有明显的
华为一键测速手机测速「华为一键测速」
华为一键测速有了这款app你就可以实时了解自己的网速了,更为专业强大的技术支撑,还能直接查看网络的各方面信息,各位朋友们尽