Skip to content

W2ONY/KakaPet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

咔咔小狮子 · KakaPet

一个原生 macOS 桌面宠物:在 HsiangHo/Kaka 的基础上,用 Swift + AppKit 重写了交互与播放引擎,无需 Xcode、零第三方依赖swift build 即可构建。

⚠️ 关于素材(重要):本仓库只包含代码。小狮子的动画帧与音效(Animations/)版权归瑞星(Rising所有不在本仓库内分发。请自行从上游 HsiangHo/Kaka 获取素材后放到 KakaPet/Animations/ 再构建,并仅在你被允许的范围内使用。MIT 协议只覆盖源码,不覆盖这些素材。


✨ 软件特性

  • 🦁 原生 macOS 桌宠:Swift + AppKit,无需 Xcode、零第三方依赖,App 仅约 500K
  • 🪟 透明无边框置顶窗口:以「附属应用」模式运行,没有 Dock 图标,仅在菜单栏放一个盾牌图标
  • 🧍 安静不吵:平时只是站立,不自动乱演动画
  • 👆 单击/双击逗它:随机播放逗趣动作(吃西瓜、挠头、做鬼脸、剪刀等);有 1-2-3 连续的动作会整串连播
  • 😴 可设定的入睡时间:无操作 30 秒 / 1 分钟 / 2 分钟 / 5 分钟 / 永不(菜单里选,记忆设置)
  • 睡眠自动活动:睡满 2 分钟自动醒来,之后每 30 秒做一个随机动作,做满 3 个再重新入睡
  • 🙌 多种唤醒:睡着时单击或鼠标经过都能把它叫醒
  • 流畅拖动:即时跟手、抓取点与动画对齐,且始终限制在屏幕内不会拖丢
  • 🫣 拖到右边缘躲起来:在拖动高度就地探头藏在右侧
    • 躲藏静置时每 30 秒探一次头
    • 鼠标悬停时循环摆手,移开就回到探头静置
    • 单击让它钻出来走回站立(位置无缝衔接)
  • 🔊 动画音效开关(菜单,记忆设置)
  • 🖱️ 右键菜单:动画音效 / 睡眠时间 / 如何拖动 / 动画说明 / 退出
  • 🛡️ 菜单栏盾牌图标,点击弹出同一套菜单
  • 📦 一键打包:脚本生成 .app 和便于分发的 .dmg

🚀 构建与运行

需要:macOS 11+、Swift 工具链(Command Line Tools 即可,无需完整 Xcode)。

# 1) 准备素材(本仓库不含):从上游 Kaka 取到各动画文件夹,放到这里
#    最终目录形如 KakaPet/Animations/Stand, /Happy, /Sleep1 ...
git clone https://github.com/HsiangHo/Kaka
cp -R Kaka/Kaka/Kaka/Animations ./Animations

# 2)(可选)放一张 1024×1024 的图标
#    cp your-icon.png ./AppIcon-1024.png

# 3) 开发模式快速跑
KAKA_ANIM_DIR="$PWD/Animations" swift run

# 4) 打包成 App / DMG
./build-app.sh        # 生成 KakaPet.app
./make-dmg.sh         # 生成 KakaPet.dmg(便于分发)

运行后菜单栏右上角会出现盾牌图标;退出:右键小狮子 → 退出咔咔,或点菜单栏图标 → 退出咔咔。


🎮 交互 / 动作

操作 反应
不打扰 安静站立,不自动播放任何动作
无操作满设定时间 进入睡眠(时间可在右键「睡眠时间」里选)
睡满 2 分钟 自动睡醒,之后每 30 秒做一个随机动作,做满 3 个后重新入睡
单击 / 双击 醒着 → 随机逗趣动作;睡着 → 睡醒;躲着 → 钻出来
拖动 即时跟手、抓取点与动画对齐,始终限制在屏幕内
拖到屏幕右边缘 就地探头躲到右侧;悬停循环摆手,移开回到探头;单击钻出来
右键单击 / 菜单栏图标 弹出菜单(音效 / 睡眠时间 / 如何拖动 / 动画说明 / 退出)

🛠️ 实现要点

  • 透明无边框、置顶 NSWindow.accessory 模式(无 Dock 图标)。
  • 58fps 定时器驱动逐帧播放;行为是一个小状态机(站立 / 逗趣 / 睡眠 / 拖动 / 躲藏)。
  • 悬停检测用「轮询鼠标位置」而非系统进/出事件,避免贴边时反复触发。
  • .app 内资源路径 Contents/Resources/Animations,运行期定位(亦支持 KAKA_ANIM_DIR 覆盖)。

源码各文件职责见 Sources/KakaPet/


📄 协议 & 致谢

  • 源码基于上游 HsiangHo/Kaka(MIT,© 2018 Xiang He)适配重写,沿用 MIT,见 LICENSE
  • 小狮子美术与音效素材版权归**瑞星(Rising)**所有,不在本仓库分发,请自行获取并合规使用。

About

一个原生 macOS 桌面宠物:在 HsiangHo/Kaka 的基础上,用 Swift + AppKit 重写了交互与播放引擎,无需 Xcode、零第三方依赖,swift build 即可构建。

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors