https://github.com/ecator/luckydraw
一个使用Tauri封装的简单抽奖桌面程序
https://github.com/ecator/luckydraw
Last synced: 4 months ago
JSON representation
一个使用Tauri封装的简单抽奖桌面程序
- Host: GitHub
- URL: https://github.com/ecator/luckydraw
- Owner: ecator
- License: mit
- Created: 2026-01-04T02:32:26.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-08T14:09:40.000Z (5 months ago)
- Last Synced: 2026-01-13T19:44:25.999Z (5 months ago)
- Language: TypeScript
- Size: 3.16 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 概要
这是一个用[Tauri 2.0](https://v2.tauri.app/)封装的一个桌面端抽奖程序。🎁
> 目前只以Windows系统为前提构建,其他系统理论上支持,但是没有测试过😅
目前提供两种模式:
- 2D照片墙模式:由参与者的照片组成照片墙,随机跳动(跳动速率根据奖项不同而变化)照片产生中奖者。🙋
- 3D球体模式:将照片组成3D球体,随机旋转(旋转速率根据奖项不同而变化)照片产生中奖者。🙋
在当前抽奖时间内抽到的照片会从抽奖池中删除,不会再被抽中。🙅
> 抽中人员信息会实时保存到`lucky.txt`文件中,所以就算重启也会保留中奖信息,如果想要某人再次进入抽奖需要把`lucky.txt`中对应人员删掉后重启软件。
# 启动
直接双击`LuckyDraw.exe`文件即可。
和exe同级目录下可以新建如下文件夹个性化:
- `avatar`
- 放入抽奖人员的照片,必须是`jpg`格式的,第一次启动会生成缩略图可能会有点慢。
- `img`
- 抽奖的背景图片,必须是`png`格式的。
- `bg.png`:默认背景图片
- `bg[1-9].png`:按下`1-9`键时切换的背景图片
- `title.png`:默认奖品的图片
- `title[1-9].png`:按下`1-9`键时切换的奖品图片
- `audio`
- 抽奖的效果音乐,必须是`mp3`格式的。
- `bg.mp3`:默认背景音乐
- `bg[1-9].mp3`:按下`1-9`键时切换的背景音乐
- `active.mp3`:默认抽奖结束的效果音
- `active[1-9].mp3`:按下`1-9`键时切换的抽奖结束的效果音
# 快捷键
> 以下为默认快捷键,可以通过`.env`文件修改,具体可以查看源码根路径下的`.env.example`文件。
- `Tab`
- 开始抽奖,一共有3个状态
- 0: 初期
- 1: 抽奖中
- 2: 展示抽奖结果
- `Delete`
- 从照片墙中删除当前中奖者
- `c`
- 清空本地存储的所有中奖信息
- 中奖人员信息会实时保存到`lucky.txt`文件中,这个按键就是清空这个文件
- `f`
- 切换全屏显示
- `1-9`
- 切换抽奖级别(背景图片、奖品信息、效果音),同时抽奖的时间也会变化
- `shift+数字`
- 修改一次抽取的人数,最多10人
- `F1`
- 切换为2D照片墙模式
- `F2`
- 切换为3D球体模式
- `F12`
- 调出控制台,用于调试程序 🐛
- 只有开发模式下有效
# 开发
需要安装[Node.js](https://nodejs.org/)和[Rust](https://www.rust-lang.org/)环境,然后克隆下来运行`pnpm install`安装依赖,然后运行`pnpm tauri dev`即可。
如果没有`pnpm`命令需要`npm i -g pnpm`全局安装下。
为了`pnpm tauri dev`能够正常获取到相关文件路径,需要编译成功一次后双击运行`scripts\mklink.bat`这个脚本,只需要运行一次即可,这个命令会在`src-tauri\target\debug`文件夹下创建快捷方式。
发布新版本之前需要运行`pnpm updateVersion x.y.z`来更新版本号,然后运行`pnpm createRelease`即可。