Skip to content
2776525655Public

About

Java Swing 实现的桌面宠物,支持点击特效、拖拽移动和状态动画。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

DeskPet - 桌面宠物

一个基于 Java Swing 的透明桌面宠物,支持动画、粒子特效、自定义指令等功能。

✨ 功能特性

核心功能

  • 🐾 透明桌面宠物 - 无边框透明窗口,始终置顶
  • 🎭 7种动画状态 - 待机、移动、点击、长按、拖拽、吞噬、晃动
  • 🎨 7个素材池 - 每个状态独立素材池,支持 GIF/PNG 序列
  • ✨ 粒子特效 - 点击/双击/喂食/拖拽时触发精美粒子效果
  • 💖 状态系统 - HP/感情/饥饿三值系统,动态衰减与恢复

交互功能

  • 🖱️ 鼠标交互 - 单击、双击、右键、长按、拖拽
  • 📁 文件吞噬 - 拖入文件即可"吃掉"(移入回收站)
  • 🔄 晃动检测 - 摇晃窗口触发特殊动画
  • ⌨️ 快捷键 - Ctrl+Shift+T 切换鼠标穿透模式

系统功能

  • 🔧 系统托盘 - 最小化到托盘,右键菜单管理
  • 🚀 开机自启 - 支持注册表开机自启(Windows)
  • ⚙️ 设置界面 - 9个标签页,60+可配置参数
  • 📜 自定义指令 - 支持 popup/sound/open/system/script 五种动作

📦 安装运行

方式一:直接下载可执行 JAR(推荐)

  1. 前往 Releases 页面下载 DeskPet-v1.0.0.zip
  2. 解压后得到 DeskPet.jar 和 resources/ 文件夹
  3. 双击 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  # 衰减间隔(毫秒)

🎨 自定义素材

添加素材到素材池

  1. 准备 GIF 或 PNG 序列图片
  2. 在设置界面中切换到对应标签页(如"站立素材池")
  3. 点击"添加素材",选择图片文件
  4. 素材会自动复制到 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。


享受你的桌面宠物吧! 🐾✨

About

Java Swing 实现的桌面宠物,支持点击特效、拖拽移动和状态动画。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages