理论铺垫之后,大家最关心的问题一定是:这个项目开源吗?当然!
值此新年之际,我将这份源码作为礼物分享给大家,希望这只小宠物能为你的桌面增添一份乐趣与陪伴。
🤖 认识 PixelPal
PixelPal 是一款使用 Rust 和 Bevy 游戏引擎开发的桌面宠物伴侣应用。
它与传统宠物游戏不同——你无需打开一个专门的窗口。它会以透明、始终置顶的形态“住”在你的桌面上,就像一个真正的数字小伙伴。

✨ 核心特性
🖥️ 桌面伴侣体验
- 透明窗口:宠物悬浮在桌面上,背景完全透明。
- 始终置顶:无论你在进行何种操作,它都会在最上层陪伴你。
- 自由拖动:你可以将其放置在桌面的任意位置。
- 轻量设计:窗口尺寸极小(140×180像素),几乎不会干扰你的正常工作。
💖 养成系统
你的像素宠物拥有三个核心属性,它们会随着时间自然变化:
| 属性 |
图标 |
说明 |
| 饥饿度 🍎 |
满足宠物的胃口 |
随时间下降,需要喂食恢复 |
| 快乐度 💕 |
让宠物开心 |
需要通过抚摸来提升 |
| 精力值⚡ |
宠物的活力 |
让宠物休息来恢复 |
宠物的心情会根据属性状态动态变化:
- 😊 开心 - 所有属性都很健康
- 🍖 饥饿 - 肚子饿了
- 😴 困倦 - 需要休息
- 😢 难过 - 需要关爱
🎮 互动玩法
点击宠物或按下 Space 键,即可打开互动菜单:
| 按钮 |
功能 |
| 🍎 Feed |
喂食恢复饥饿度 |
| 💕 Pet |
抚摸增加快乐度 |
| 💃 Dance |
来一段欢快的舞蹈 |
| 😴 Sleep |
休息恢复精力 |
| 💬 Talk |
和宠物聊聊天 |
🎯 小游戏
反应速度测试
按下 R 键即可启动反应游戏:
- 等待屏幕显示 “GO!”。
- 看到 “GO!” 后,尽快按下
Space 键。
- 程序会显示你的反应时间。
隐藏连招彩蛋 🥚
在 0.65 秒内连续点击宠物 3 次,可以触发一段隐藏的舞蹈连招!
🏆 成就系统
通过持续的互动与游戏,可以解锁各种成就:
| 成就 |
解锁条件 |
| First Feed |
第一次喂食 |
| Pet Lover |
抚摸宠物 10 次 |
| Combo Starter |
触发连招 |
| Reflex Ace |
反应时间 ≤ 350ms |
🛠️ 技术亮点
PixelPal 是一个很好的 开源实战 范例,展示了现代 Rust 游戏开发的一些优秀实践。
技术栈
- 语言: Rust (Edition 2024)
- 引擎: Bevy 0.18 - 数据驱动的游戏引擎
- 渲染: 支持透明窗口的跨平台渲染
架构设计
src/
├── main.rs # 应用入口和系统调度
├── pet.rs # 宠物状态和属性衰减逻辑
├── window.rs # 窗口配置(透明、置顶等)
├── animation/ # 精灵动画系统
│ ├── mod.rs
│ ├── systems.rs # 动画帧更新
│ └── types.rs # 动作状态机
├── fun/ # 小游戏和成就系统
│ ├── events.rs # 游戏事件定义
│ ├── state.rs # 连招追踪、反应游戏、成就进度
│ └── systems.rs # 游戏逻辑处理
└── ui/ # 用户界面
├── components.rs # UI组件标记
├── menu.rs # 菜单交互逻辑
├── resources.rs # 菜单状态资源
├── setup.rs # UI初始化
└── status.rs # 状态显示更新
设计亮点
- ECS 架构:充分利用 Bevy 的 Entity-Component-System 模式,实现高效的数据组织和系统调度。
- 状态机设计:动作切换(如 Idle → Acting → Idle)逻辑清晰优雅。
- 事件驱动:使用 Bevy 的 Event 系统有效解耦了不同模块的游戏逻辑。
- 资源管理:通过清晰的 Resource 抽象来管理全局状态,体现了良好的 后端 & 架构 设计思想。
🚀 快速开始
环境要求
- Rust 1.85+ (Edition 2024)
- macOS / Linux / Windows
构建运行
# 克隆仓库
git clone https://github.com/lispking/pixel-pal.git
cd pixel-pal
# 构建发布版本
cargo build --release
# 运行
cargo run --release
操作说明
| 按键 |
功能 |
鼠标左键(宠物) |
切换菜单 / 触发连招 |
鼠标左键(空白) |
关闭菜单 |
Space |
切换菜单 / 反应游戏响应 |
R |
启动反应游戏 |
新年新气象,愿这只小小的像素宠物能给你带来欢乐!
如果你对这个项目感兴趣,欢迎在 GitHub 上 Star ⭐、Fork 🍴 或直接贡献代码 💻。
Happy Coding & Happy New Year! 🎆
Made with ❤️ and Rust
|