Skip to content

4NaNBo1/WoodenFish

Repository files navigation

木魚禪境 (Wooden Fish) 🪔

一个短视频爆款级的"数字木鱼"iOS应用,使用纯原生 Swift 和 SwiftUI 框架打造。

✨ 特色功能

🎯 核心体验

  • 水滴变形动画: 点击木鱼时,按钮会呈现出如水滴般柔软的变形和回弹效果
  • 动态佛光环: 随着敲击频率自动调节光晕强度和旋转速度
  • 粒子效果: 每次点击都会释放出精美的粒子特效
  • 连击模式: 长按进入连击模式,获得5倍功德加成

🎨 美学设计

  • 独特字体:
    • 数据展示使用 Monospaced 技术风格字体
    • 禅意文本使用 Serif Editorial 风格字体
  • 深色主题: 专业级深色背景配合琥珀色主题色
  • 毛玻璃效果: 使用 SwiftUI 原生 Material 实现的透明毛玻璃导航栏
  • 分层渐变: 微妙的几何图案和渐变营造深度感

🔊 音效系统

  • 支持多个木鱼音效文件随机播放
  • 触觉反馈(Haptic Feedback)增强沉浸感
  • 可在界面中一键开关音效

📊 统计功能

  • 总敲击次数追踪
  • 累积功德值系统
  • 境界等级(初心→精进→入定→悟道→菩萨→圆满)
  • 成就徽章系统
  • 数据持久化保存

🚀 快速开始

系统要求

  • iOS 17.0 或更高版本
  • Xcode 15.0 或更高版本
  • Swift 5.9 或更高版本

安装步骤

  1. 克隆或下载项目

    cd /path/to/WoodenFish
  2. (可选)添加音效文件

    为了获得最佳体验,请准备 5 个木鱼音效文件:

    • 文件命名: woodenfish_1.mp3, woodenfish_2.mp3, ... woodenfish_5.mp3
    • 将这些文件添加到项目的根目录
    • 在 Xcode 中,将它们拖入项目导航器
    • 确保勾选 "Copy items if needed" 和 "Add to targets: WoodenFish"

    注意:如果不添加音效文件,应用会使用触觉反馈作为替代。

  3. 在 Xcode 中打开项目

    open WoodenFish.xcodeproj
  4. 选择目标设备并运行

    • 选择一个模拟器或真机
    • 点击运行按钮 (⌘R)

📁 项目结构

WoodenFish/
├── WoodenFishApp.swift          # 应用入口
├── ContentView.swift            # 主视图(包含启动动画)
├── WoodenFishView.swift         # 核心木鱼交互视图
├── StatisticsView.swift         # 统计数据视图
├── SoundManager.swift           # 音效管理器
├── DataManager.swift            # 数据持久化管理器
├── Assets.xcassets/             # 资源文件
└── README.md                    # 项目说明

🎮 使用说明

基础操作

  • 单击木鱼: 敲击一次,获得 1 点功德
  • 长按木鱼: 进入连击模式(持续 0.5 秒),在 5 秒内每次敲击获得 5 点功德
  • 快速连击: 在 0.5 秒内连续点击会增强佛光环效果

界面功能

  • 左上角图表按钮: 查看统计数据和成就徽章
  • 右上角音效按钮: 开启/关闭音效
  • 顶部数字: 显示总敲击次数
  • 底部功德值: 显示今日累积功德

🛠 技术亮点

SwiftUI 原生动画

  • withAnimation + spring 实现物理回弹效果
  • TimelineView 实现实时动画更新
  • contentTransition 实现数字平滑过渡
  • blur + blend modes 创造戏剧性光效

性能优化

  • 使用 @State@StateObject 进行状态管理
  • 粒子系统自动清理过期粒子
  • 音效预加载提升响应速度
  • UserDefaults 实现轻量级数据持久化

代码架构

  • MVVM 设计模式
  • 单例模式管理全局服务(音效、数据)
  • 模块化组件设计便于维护

🎨 自定义配置

修改主题色

WoodenFishView.swift 中修改颜色值:

// 佛光环颜色
Color(red: 1.0, green: 0.7, blue: 0.2)  // 琥珀色

// 木鱼主体颜色
Color(red: 0.5, green: 0.3, blue: 0.15)  // 木色

调整动画速度

在各个动画闭包中修改参数:

withAnimation(.spring(response: 0.3, dampingFraction: 0.5)) {
    // 修改 response 值可以调整动画速度
}

修改功德等级阈值

DataManager.swift 中的 getMeritLevel() 方法:

switch totalMerit {
case 0..<100:        // 修改这些数值
    return "初心"
// ...
}

🐛 故障排除

问题:音效无法播放

解决方案:

  1. 确保音效文件已正确添加到项目
  2. 检查文件命名是否正确(woodenfish_1.mp3 ~ woodenfish_5.mp3)
  3. 在 Xcode 中验证文件是否在 "Copy Bundle Resources" 中

问题:数据没有保存

解决方案:

  • 检查是否使用了 DataManager.shared.addTap() 来增加计数
  • 验证 UserDefaults 权限没有被限制

问题:动画卡顿

解决方案:

  • 在真机上测试(模拟器性能较差)
  • 减少粒子生成数量(在 generateParticles() 中修改循环次数)
  • 降低模糊半径值

📝 待办事项

  • 添加更多成就徽章
  • 支持自定义木鱼皮肤
  • 添加每日签到功能
  • 实现分享功能(截图分享到社交媒体)
  • 支持 iPad 适配
  • 添加音效音量调节
  • 实现云端数据同步(iCloud)

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

本项目仅供学习和个人使用。

🙏 致谢

感谢所有为开源社区做出贡献的开发者们。


愿您在数字木鱼的敲击声中,找到内心的宁静与平和。 🧘‍♂️✨

About

AI App

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages