一个基于 Java Swing 的透明桌面宠物,支持动画、粒子特效、自定义指令等功能。
- 🐾 透明桌面宠物 - 无边框透明窗口,始终置顶
- 🎭 7种动画状态 - 待机、移动、点击、长按、拖拽、吞噬、晃动
- 🎨 7个素材池 - 每个状态独立素材池,支持 GIF/PNG 序列
- ✨ 粒子特效 - 点击/双击/喂食/拖拽时触发精美粒子效果
- 💖 状态系统 - HP/感情/饥饿三值系统,动态衰减与恢复
- 🖱️ 鼠标交互 - 单击、双击、右键、长按、拖拽
- 📁 文件吞噬 - 拖入文件即可"吃掉"(移入回收站)
- 🔄 晃动检测 - 摇晃窗口触发特殊动画
- ⌨️ 快捷键 -
Ctrl+Shift+T切换鼠标穿透模式
- 🔧 系统托盘 - 最小化到托盘,右键菜单管理
- 🚀 开机自启 - 支持注册表开机自启(Windows)
- ⚙️ 设置界面 - 9个标签页,60+可配置参数
- 📜 自定义指令 - 支持 popup/sound/open/system/script 五种动作
- 前往 Releases 页面下载
DeskPet-v1.0.0.zip - 解压后得到
DeskPet.jar和resources/文件夹 - 双击
DeskPet.jar即可运行(需要 Java 17+)
# 克隆仓库
git clone https://github.com/yourusername/DeskPet.git
cd DeskPet
# 构建项目
mvn clean package
# 运行
java -jar target/DeskPet-1.0.0.jar- 操作系统: Windows 10/11(鼠标穿透功能仅支持 Windows)
- Java 版本: Java 17 或更高版本
- 内存: 建议 512MB 以上
- 左键单击 - 触发点击动画
- 左键双击 - 触发爱心粒子特效
- 左键长按 - 触发长按动画
- 左键拖拽 - 移动宠物位置,触发拖拽动画
- 右键单击 - 触发自定义指令(需在设置中配置)
- 拖入文件 - 宠物"吃掉"文件(移入回收站)
- 摇晃窗口 - 触发晃动动画
Ctrl+Shift+T- 切换鼠标穿透模式(穿透后无法点击宠物)
- 显示/隐藏 - 显示或隐藏宠物
- 打开配置 - 打开设置界面
- 开机自启 - 切换开机自启动
- 重启 - 重启宠物
- 退出 - 退出程序
配置文件位于 config.properties,首次运行自动生成。
# 窗口设置
window.opacity=0.9 # 窗口透明度
window.width=200 # 窗口宽度
window.height=200 # 窗口高度
# 动画设置
animation.fps=30 # 动画帧率
move.speed=5 # 移动速度
move.interval=3000 # 移动间隔(毫秒)
# 状态值设置
status.hp=100 # 初始 HP
status.affection=50 # 初始 感情
status.hunger=80 # 初始 饥饿
status.decay.interval=10000 # 衰减间隔(毫秒)- 准备 GIF 或 PNG 序列图片
- 在设置界面中切换到对应标签页(如"站立素材池")
- 点击"添加素材",选择图片文件
- 素材会自动复制到
resources/images/default/目录
| 素材池 | 对应状态 | 说明 |
|---|---|---|
| idle_pool | 待机 | 宠物静止时的动画 |
| move_pool | 移动 | 宠物移动时的动画 |
| click_pool | 点击 | 单击宠物时的反应动画 |
| longpress_pool | 长按 | 长按时循环播放的动画 |
| drag_pool | 拖拽 | 拖拽宠物时的动画 |
| devour_pool | 吞噬 | 吃掉文件时的动画 |
| shake_pool | 晃动 | 摇晃窗口时的动画 |
在设置界面的"交互设置"标签页中配置:
{
"trigger": "right_click",
"action": "popup",
"params": ["你好!我是桌宠~"]
}click- 单击double_click- 双击right_click- 右键long_press- 长按drag- 拖拽
popup <消息>- 显示气泡消息sound- 播放系统提示音open <路径>- 打开文件或网址system <锁屏|清空回收站|休眠|关机>- 执行系统操作script <脚本路径>- 执行脚本
DeskPet/
├── src/main/java/com/deskpet/
│ ├── App.java # 程序入口
│ ├── config/ # 配置管理
│ ├── core/ # 核心功能
│ ├── extension/ # 扩展接口
│ ├── interaction/ # 交互处理
│ ├── command/ # 指令系统
│ ├── tray/ # 系统托盘
│ ├── ui/ # 用户界面
│ ├── effects/ # 粒子特效
│ └── util/ # 工具类
├── resources/
│ ├── images/default/ # 默认素材
│ │ ├── idle_pool/ # 待机素材池
│ │ ├── move_pool/ # 移动素材池
│ │ ├── click_pool/ # 点击素材池
│ │ ├── longpress_pool/ # 长按素材池
│ │ ├── drag_pool/ # 拖拽素材池
│ │ ├── devour_pool/ # 吞噬素材池
│ │ └── shake_pool/ # 晃动素材池
│ ├── sounds/ # 音效(预留)
│ └── scripts/ # 脚本(预留)
└── pom.xml # Maven 配置
- 语言: Java 17+
- UI 框架: Java Swing
- 构建工具: Maven
- 系统调用: JNA (Java Native Access)
- 动画引擎: 自研状态机 + 30fps 定时器
本项目采用 MIT License 开源。
本项目的宠物动画素材通过 AI 工具生成,遵循 MIT 许可证自由使用和分发。
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请提交 Issue。
享受你的桌面宠物吧! 🐾✨