# shot **Repository Path**: mcxia/shot ## Basic Information - **Project Name**: shot - **Description**: 激光射手 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-27 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 激光射击训练系统 - Laser Shooting Training System ## 项目简介 这是一个基于Flutter的专业激光射击训练系统,支持Android平台。系统使用手机摄像头识别激光枪发射的激光点,配合各种靶子,提供专业的射击训练体验。 ## 功能特性 ### 1. 用户认证模块 - 手机号注册 - 验证码登录 - 激活码验证系统 - 用户登录时长管理 ### 2. 激光检测系统 - 摄像头实时预览 - 激光点识别和追踪 - 坐标计算 ### 3. 靶子系统 - **标准靶**:9厘米直径,1-10环 - **分区训练靶**:左区、右区、左半区、右半区、上半区、下半区 - **实战靶**:两个随机出现的圆靶,命中后变换位置 ### 4. 射击模式 - **单发训练**:30分钟限时,100发子弹 - **速射训练**:10秒10发,30次 - 环数统计和历史记录 ### 5. 增强功能 - 英语语音播报(环数、鼓励语) - 视频教程 - 用户数据统计 - 成绩展示和排名 ## 项目结构 ``` shot/ ├── lib/ │ ├── main.dart # 应用入口 │ ├── models/ │ │ └── user_model.dart # 用户数据模型 │ ├── services/ │ │ ├── auth_service.dart # 认证服务 │ │ └── laser_detection_service.dart # 激光检测服务 │ └── screens/ │ ├── splash_screen.dart # 启动屏 │ ├── auth_screen.dart # 认证页 │ ├── main_screen.dart # 主框架 │ ├── home_screen.dart # 首页 │ ├── training_screen.dart # 训练配置页 │ ├── shooting_screen.dart # 射击页 │ ├── results_screen.dart # 成绩页 │ ├── profile_screen.dart # 个人中心 │ └── settings_screen.dart # 设置页 ├── android/ # Android配置 ├── assets/ │ └── videos/ # 视频教程(需自行添加) └── pubspec.yaml # 依赖配置 ``` ## 演示激活码 - `SHOOT2025` - `LASERPRO` ## 构建说明 ### 环境要求 - Flutter SDK (最新稳定版) - Android SDK - Android Studio 或 VS Code ### 步骤1:清理环境 由于NDK下载问题,请按以下步骤操作: ```powershell # 清理所有临时文件 Remove-Item -Recurse -Force "E:\shot\shot\.dart_tool" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "E:\shot\shot\build" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "E:\gradle\.gradle" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "E:\flutter\.pub-cache" -ErrorAction SilentlyContinue ``` ### 步骤2:手动配置NDK(如果自动下载失败) 1. 打开Android Studio 2. Tools > SDK Manager 3. SDK Tools 标签 4. 勾选 NDK (Side by side) 和 CMake 5. Apply 安装 ### 步骤3:构建APK 方法1:使用命令行(推荐) ```powershell # 设置环境变量(使用E盘作为临时目录) $env:TEMP="E:\flutter\temp" $env:TMP="E:\flutter\temp" $env:PUB_CACHE="E:\flutter\.pub-cache" $env:GRADLE_USER_HOME="E:\gradle\.gradle" $env:ANDROID_HOME="C:\Users\Administrator\AppData\Local\Android\Sdk" # 构建Debug APK E:\flutter\bin\flutter.bat build apk --debug --android-skip-build-dependency-validation ``` 方法2:使用Android Studio 1. 打开Android Studio 2. Open an Existing Project 3. 选择 `E:\shot\shot` 4. 等待Gradle同步完成 5. Build > Build Bundle(s) / APK(s) > Build APK(s) ### 生成的APK位置 成功构建后,APK位于: ``` E:\shot\shot\build\app\outputs\flutter-apk\app-debug.apk ``` ## 常见问题 ### Q: NDK下载失败怎么办? A: 请使用Android Studio手动安装NDK,或删除损坏的NDK目录后重试。 ### Q: 构建时磁盘空间不足? A: 使用E盘作为临时目录(如步骤3所示),确保E盘有足够空间。 ### Q: Gradle版本不兼容? A: 使用 `--android-skip-build-dependency-validation` 标志跳过版本检查。 ## 技术栈 - **Framework**: Flutter - **语言**: Dart - **后端**: Firebase (Firebase Auth, Cloud Firestore) - **插件**: - camera: 摄像头功能 - audioplayers: 语音播放 - firebase_auth: 用户认证 - cloud_firestore: 数据存储 - shared_preferences: 本地存储 - permission_handler: 权限管理 - video_player: 视频播放 - path_provider: 路径管理 ## 许可证 本项目仅供学习和个人使用。 ## 联系方式 如有问题,请通过项目仓库提交Issue。