手记 · 2026
00:00:00
杭州
hello@damien-wang.com
求职中
杭州 · 远程
← 全部手记
NOTE // 09

Ai 塔罗抽卡

Tarol提示词

以下是提示词prompt参考,可根据结构自行调整,自己想要的样式

Prompt

创建一个功能完整的单文件 HTML 塔罗占卜应用,整合 3D 交互、牌阵系统与专业解读。要求如下:

🌐 核心架构

  • 使用 Three.js r132+ 作为 3D 引擎
  • 集成 MediaPipe Hands v0.1 (CDN)
  • 摄像头权限失败时自动降级至鼠标交互
  • 添加永久显示的"手势/鼠标"切换按钮(右下角悬浮)

🎮 交互逻辑(清晰状态机)

控制模式

  1. 手势模式:

    • OPEN(手掌):进入待抽牌状态(卡牌轻微浮动提示)
    • PINCH(捏合):射线命中卡牌后抓取,拉到镜头前 30cm 悬停
    • FIST(握拳):确认选择/抽牌
    • POINT(食指):悬停高亮卡牌,停止惯性运动
  2. 鼠标模式:

    • 鼠标悬停:高亮卡牌
    • 鼠标拖拽:抓取并移动卡牌
    • 点击:确认选择/抽牌
    • 鼠标滚轮:缩放视角

状态转换

  • IDLE → SELECTION(OPEN/悬停开始)
  • SELECTION → HOLDING(PINCH/点击拖拽)
  • HOLDING → CONFIRMED(FIST/释放)
  • CONFIRMED → EFFECT(触发粒子效果)

🃏 卡牌系统

资源加载

  • 正面:78张 Rider-Waite-Smith 高清图(使用公共CDN:https://tarot-api.example/cards/)

  • 背面:统一神秘风格背面(内置base64)

  • 加载策略:

    1. 优先尝试CDN加载
    2. 失败后使用本地base64占位符
    3. 显示加载进度条(Three.js LoadingManager)

抽卡逻辑

  • 从未抽牌库随机选1张

  • 50%概率生成 orientation:{upright, reversed}

  • reversed 时:卡牌绕Z轴旋转180°,UI标注"逆位"

  • 每张卡牌包含数据:

    {
      name: "The Fool",
      number: 0,
      uprightMeaning: "新开始,天真,信任",
      reversedMeaning: "鲁莽,拖延,风险",
      positionMeanings: { // 牌阵位置含义
        past: "过去的天真态度",
        present: "当前需要勇气的决定",
        future: "未来可能出现的冒险"
      }
    }
    

简单版

Code塔罗牌

✨ 优化版指令:单文件 HTML 塔罗占卜系统(Three.js + MediaPipe)

创建一个功能完整的单文件 HTML 塔罗占卜应用,整合 3D 交互、牌阵系统与专业解读。要求如下:

## 🌐 核心架构
- 使用 Three.js r132+ 作为 3D 引擎
- 集成 MediaPipe Hands v0.1 (CDN)
- 摄像头权限失败时自动降级至鼠标交互
- 添加永久显示的"手势/鼠标"切换按钮(右下角悬浮)

## 🎮 交互逻辑(清晰状态机)
### 控制模式
1. **手势模式**:
   - OPEN(手掌):进入待抽牌状态(卡牌轻微浮动提示)
   - PINCH(捏合):射线命中卡牌后抓取,拉到镜头前 30cm 悬停
   - FIST(握拳):确认选择/抽牌
   - POINT(食指):悬停高亮卡牌,停止惯性运动
   
2. **鼠标模式**:
   - 鼠标悬停:高亮卡牌
   - 鼠标拖拽:抓取并移动卡牌
   - 点击:确认选择/抽牌
   - 鼠标滚轮:缩放视角

### 状态转换
- IDLE → SELECTION(OPEN/悬停开始)
- SELECTION → HOLDING(PINCH/点击拖拽)
- HOLDING → CONFIRMED(FIST/释放)
- CONFIRMED → EFFECT(触发粒子效果)

## 🃏 卡牌系统
### 资源加载
- 正面:78张 Rider-Waite-Smith 高清图(使用公共CDN:https://tarot-api.example/cards/)
- 背面:统一神秘风格背面(内置base64)
- 加载策略:
  1. 优先尝试CDN加载
  2. 失败后使用本地base64占位符
  3. 显示加载进度条(Three.js LoadingManager)

### 抽卡逻辑
- 从未抽牌库随机选1张
- 50%概率生成 orientation:{upright, reversed}
- reversed 时:卡牌绕Z轴旋转180°,UI标注"逆位"
- 每张卡牌包含数据:
  ```js
  {
    name: "The Fool",
    number: 0,
    uprightMeaning: "新开始,天真,信任",
    reversedMeaning: "鲁莽,拖延,风险",
    positionMeanings: { // 牌阵位置含义
      past: "过去的天真态度",
      present: "当前需要勇气的决定",
      future: "未来可能出现的冒险"
    }
  }

✨ 特效系统

粒子灰烬效果

  • 确认抽牌后将卡牌转换为粒子系统

  • 技术实现:InstancedBufferGeometry + 自定义着色器

  • 粒子属性:

    • 随机大小 (0.5-2.0)
    • 起始alpha=1.0,随时间衰减
    • 寿命 2-4 秒
    • 运动轨迹:上飘 + Perlin噪声扰动
  • 优化:粒子数量限制在2000以内,超出时自动合并

🔮 牌阵系统

支持三种牌阵

  1. 单张牌:简单问题指引
  2. 三张牌:过去-现在-未来
  3. 凯尔特十字(10张牌):全面解读

牌阵选择UI

  • 左侧面板(可折叠):

    • 标题"选择牌阵"
    • 三个大按钮带图标:[1] [3] [10]
    • 选中后高亮并显示简短说明
    • 当前牌阵位置指示器(如"第2张/共3张")

牌阵布局

  • 单张:居中悬浮
  • 三张:水平排列,间距400px
  • 凯尔特十字:按经典位置布局(代码内预设坐标)

📖 解读系统

解读面板(右侧可折叠面板)

  • 当前牌信息:

    • 卡牌大图(2D展示)
    • 牌名 + 位置 + 正/逆位
    • 详细含义(根据位置动态变化)
  • 牌阵综合解读:

    • 位置关系图(SVG生成)
    • 牌与牌之间的能量流动分析
    • 生成3-5句个性化洞见(预设模板+随机组合)
    • "保存解读"按钮(生成可分享图片)

历史记录

  • 底部可展开面板:

    • 按时间倒序排列已抽牌
    • 每条记录:牌名 + 位置 + 正/逆 + 日期
    • 点击可重新查看解读
    • "新建占卜"按钮重置所有状态

🎨 UI/UX设计

布局

+-------------------------------------+
|  3D场景 (占满整个视口)               |
|                                     |
|  [牌阵选择]  [解读面板]             |
|  (左)        (右)                   |
|                                     |
|  [历史记录面板]                     |
|  (底部可折叠)                       |
+-------------------------------------+
|  [手势/鼠标切换] [设置] [新建占卜]  |
|  (固定在右下角)                     |
+-------------------------------------+

视觉设计

  • 暗色主题:背景 #0a0e17,面板 #1a1f36 透明度85%
  • 卡牌悬停时发光效果(正位蓝色#4da6ff,逆位紫色#c77dff)
  • 粒子效果颜色根据牌组变化(权杖-红,圣杯-蓝,宝剑-灰,星币-金)
  • 交互反馈:按钮点击动画,成功音效(Web Audio API生成)

⚙️ 技术实现要求

单文件HTML:所有JS/CSS内联,CDN依赖通过

错误处理:

摄像头权限拒绝:自动切换鼠标模式,Toast提示

资源加载失败:优雅降级,显示错误图标

手势识别不稳定:添加150ms防抖+平滑滤波

性能优化:

低配设备自动降低粒子数量

移动端触摸优化

内存泄漏防护(销毁粒子系统时清理纹理)

完整注释:关键算法区域添加中文注释

🎁 彩蛋实现

当抽到"The World"正位时,粒子效果变成彩色星环

连续三张逆位牌触发"命运转折"提示

凌晨3:33进行占卜时,背景音乐变为神秘音效

请输出完整可运行的单HTML文件,包含所有必要依赖和详细注释。代码结构清晰,按模块划分:初始化、3D场景、手势控制、牌阵逻辑、UI系统、特效管理。添加使用说明注释块。

这个优化后的指令:
明确了牌阵系统的三种布局和位置含义
增加了专业解读逻辑,包含位置特异性解读
详细定义了UI布局和交互流程
补充了错误处理和性能优化细节
规范了数据结构和状态转换
增加了用户体验细节(反馈、动效、音效)
保留了所有核心技术要求(Three.js + MediaPipe)
添加了有意义的彩蛋提升趣味性
此指令可直接在 Claude 中使用,会生成一个功能完整、代码结构清晰的单文件 HTML 塔罗占卜应用。

制作应用app/小游戏 优化项

根据上述提示词指令,应得到初期大致框架,注:虽然ai弥补了小白写简单编程的能力,但是就目前能力还达不到专业水平,但可在此基础进行优化,大大节省了额外时间。

🌟 若ai不理解可进行自行垫图,以下是帮大家整理好的塔罗牌参考样式,花费较长时间画图(仅供娱乐和学习禁止商用)

cups_0.jpg
cups_1.jpg
cups_4.jpg
cups_3.jpg
cups_5.jpg
cups_2.jpg
cups_9.jpg
cups_7.jpg
cups_8.jpg
cups_6.jpg
cups_12.jpg
cups_13.jpg
cups_11.jpg
cups_10.jpg
major_3.jpg
major_2.jpg
major_1.jpg
major_0.jpg
major_7.jpg
major_6.jpg
major_5.jpg
major_4.jpg
major_11.jpg
major_10.jpg
major_9.jpg
major_8.jpg
major_15.jpg
major_13.jpg
major_14.jpg
major_12.jpg
major_21.jpg
major_18.jpg
major_19.jpg
major_20.jpg
pentacles_5.jpg pentacles_2.jpg
major_17.jpg major_16.jpg
pentacles_1.jpg pentacles_0.jpg
pentacles_3.jpg pentacles_4.jpg
pentacles_9.jpg
pentacles_8.jpg
pentacles_7.jpg
pentacles_6.jpg
pentacles_13.jpg
pentacles_12.jpg
pentacles_11.jpg
pentacles_10.jpg
swords_2.jpg
swords_3.jpg
swords_1.jpg
swords_0.jpg
swords_6.jpg
swords_7.jpg
swords_5.jpg
swords_4.jpg
swords_11.jpg
swords_10.jpg
swords_9.jpg
swords_8.jpg
wands_1.jpg
wands_0.jpg
swords_13.jpg
swords_12.jpg
wands_4.jpg
wands_5.jpg
wands_3.jpg
wands_2.jpg
wands_9.jpg
wands_7.jpg
wands_10.jpg
wands_8.jpg
wands_11.jpg
wands_6.jpg
wands_12.jpg
wands_13.jpg

实现路径

可以在看板左上角选择“里程碑看板”、“里程碑列表”或“甘特图” 3 种视图

💡 新手优先选Gemini较简单,若无科学上网环境可在Code软件中(VScode/Cursor)国内软件以(Tare&Qoder&CodeBuddy)

Gemini应用界面

的是Visual Studio Code(VS Code)的官网页面

Cursor AI工具界面,上方有“Cursor”标志及导航栏

的是一个蓝色的图标,由两个相互交叉的带状图形构成,整体造型简洁现代

的是Gemini AI的图标

的是Gemini的图标

的是Gemini AI应用图标

的是Gemini  图片展示的是Gemini的标志,为一个紫色和蓝色渐变的圆形背景,中间是一个黑色的六边形图案,六边形内有一个黑色的闪电形状