尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

PySide6 桌面宠物框架从零上手:用 DyberPet 让角色住进你的屏幕

PySide6 桌面宠物框架从零上手:用 DyberPet 让角色住进你的屏幕 PySide6 桌面宠物框架从零上手用 DyberPet 让角色住进你的屏幕【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet如果你曾经幻想过让喜欢的角色在你的电脑桌面上跑来跑去、会饿会闹、还能陪你完成番茄钟那么今天这个开源项目值得你认真看一遍。PySide6 桌面宠物框架 DyberPet呆啵宠物不是那种只能播放 GIF 的玩具而是一套把动画、养成、任务、商店全部打通的可玩桌宠系统而且从「换角色」到「造角色」全程有手就行。下面我用一条「从下载到魔改」的真实路线带你拆开这套框架看它到底能做什么、怎么玩、怎么改。先弄明白DyberPet 到底解决了什么问题做桌面宠物最劝退的不是画画而是「画完怎么动起来」。要让一个角色走路、睡觉、被拖拽时挣扎、掉下屏幕边缘时摔落还要和饱食度、好感度这些数值联动自己从零写一套动画状态机少说要几百行代码。DyberPet 把这一整套都替你做好了动画播放、物理模拟、交互反馈、数值养成、背包商店、任务计时全部模块化配置全部走 JSON。你只需要准备素材、填好配置文件一个能跑能养能聊天的桌面宠物就诞生了。这也是它和纯展示型桌宠最本质的区别——它不是壳是引擎。四个让人眼前一亮的设计亮点1. 配置即角色动一张图就是新宠物⚡ 创建新角色几乎不碰 Python 代码。角色属性写在res/role/[角色名]/pet_conf.json动画序列写在同目录的act_conf.json图片命名按动作名_帧号.png放进action/文件夹就能被自动识别。这也是它社区能长出这么多角色的根本原因。2. 状态机 物理模拟真的「像活的」 宠物的行为由一套动作状态机驱动默认站立、左右行走、随机触发睡觉或生气、被拖拽后松手还会下落。下落带重力加速度、碰撞屏幕边界会反弹迷你宠物会排队跟在主宠身后。细节控福音是连「鼠标松开后先播放预摔动作再落下」这种过渡都做进去了。3. 养成闭环完整数值是真的会变 饱食度和好感度会随时间自然衰减和成长好感度上限 200 级喂食、互动、做任务都会影响数值物品还带 Buff 系统——比如汉堡能让你「5 分钟内饱食度不掉」薯条则能「每 30 秒赚 5 金币」。状态管理逻辑在 DyberPet/Dashboard/statusUI.pyBuff 运算在 DyberPet/Dashboard/buffModule.py。4. 消息驱动的模块通信扩展不打架 主程序里几十个模块几乎互不 import全靠 Qt 信号槽连接入口在 run_DyberPet.py。宠物饿了、升级了、任务完成了各自发出信号通知栏、面板、动画各自响应新功能只要「接一根线」就能融入整个系统。一次真实上手从跑起来到被它黏住我按文档流程在干净的 conda 环境里装好依赖后python run_DyberPet.py一条命令屏幕上就蹦出一只小猫。第一反应是它居然真的会从屏幕边缘掉下去然后自己爬起来走回中间全程没写一行代码。最让我惊喜的是「拍拍」交互鼠标点一下角色会冒出浮动的小心心偶尔还随机掉个金币或物品金币掉落是抛物线动画落到底部任务栏。专注工作时它会在番茄钟结束时准时弹出提醒走神拍它还会冒气泡吐槽「You should be focusing on your work」。新手最容易踩的三个坑别直接跑系统 Python务必新建 conda 环境装 Python 3.9.18版本不对容易踩 PySide6 兼容问题仓库自带素材用的是中文目录名Linux/macOS 下注意文件路径编码程序默认禁止多开防止存档冲突想同屏多个角色要走「召唤同伴」功能而不是再开一个进程两段代码看懂它的设计精髓第一段是入口文件 run_DyberPet.py 的信号连接能直观看到模块间如何协作# 宠物 → 通知栏喂食/升级时弹气泡 self.p.setup_notification.connect(self.note.setup_notification) self.p.fvlvl_changed_main_note.connect(self.note.fvchange_note) # 宠物 → 控制面板切换角色、刷新缩放 self.conp.charCardInterface.change_pet.connect(self.p._change_pet) # 状态面板 → 宠物数值变化驱动动画反馈 self.board.statusInterface.changeStatus.connect(self.p._change_status)每行都是一条「事件管道」哪边的功能需要沟通加一行连接即可耦合度极低。第二段看动画配置 res/role/Kitty/act_conf.json了解「走路」是怎么定义的left_walk: { images: leftwalk, act_num: 5, need_move: true, direction: left, frame_refresh: 0.2 }意思是读取leftwalk_0.png到leftwalk_4.png共 5 帧每 0.2 秒换一帧并同时向左移动。一个动作 一段 JSON 一组同名帧图这就是整个动画系统的全部秘密。进阶自定义三步给宠物加一个新动作系统里其实还带了一套可视化动作设计面板DyberPet/Dashboard/animationUI.py但更推荐你先手写一遍 JSON彻底搞懂映射关系准备帧图在res/role/Kitty/action/下放dance_0.png~dance_3.png注册动作在act_conf.json里加一个dance: {images: dance, act_num: 4, frame_refresh: 0.15}接进随机逻辑在pet_conf.json的random_act数组里加上跳舞条目和概率刷新后宠物闲置时就有概率突然跳起舞来。想更进一步可以给物品加自定义 Buff参照 res/items/Default/items_config.json或者设计多分支对话树——对话系统支持「文本→选项→分支文本」的图式结构设计逻辑见项目 docs 下的对话流程图部署与运行按步骤走十分钟跑起来创建并激活虚拟环境推荐 condaPython 3.9.18安装核心依赖conda install -c conda-forge apscheduler pynput安装 GUI 组件pip install PySide6-Fluent-Widgets1.5.4 pyside66.5.2 tendomacOS 用户改用pip install pynput1.7.6克隆仓库git clone https://gitcode.com/GitHub_Trending/dy/DyberPet进入目录执行python run_DyberPet.py看到宠物即可开始玩耍Windows 用户可跳过全部步骤直接下载 Release 里的 EXE 双击运行客观评价与下一步建议亮点配置驱动带来的超高可扩展性、动画与养成/任务的深度联动、信号槽架构干净易维护、Windows 开箱即用。局限文档偏少用户手册还在施工中LLM 对话能力尚未完全开源整体依赖版本约束较紧跨大版本升级可能踩坑。给你的行动建议先按上面的步骤跑通 Demo右键菜单把所有面板翻一遍然后照着素材开发文档docs/art_dev.md做一个自己的角色最后再去读 DyberPet/Dashboard 里的源码你会发现这套框架本身就是一份非常优秀的 PySide6 桌面应用教学范本。【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表