用一段提示词让 Gemini 制作手势交互游戏
2025-12-25 15:13:02
文章摘要
想做手势交互游戏但不会编程?这篇给了完整提示词,能让 Gemini 生成摄像头手势控制的射击游戏,还拆解提示词技巧、其他游戏模板和问题解决方案,新手也能快速上手制作游戏。
目录
前几天,我在刷到别人 Gemini 制作的游戏,居然能直接获取麦克风权限。
你对着麦克风说话,游戏里就会有反应:例如一个山丘状的波形随声音变化,或角色跳得更高。
这让我产生了一个大胆的想法:既然能读取麦克风,那能不能读取摄像头权限,实现手势交互游戏?
结果真的可以。
只用一段提示词,就让 Gemini 生成了完整的手势射击游戏,利用摄像头实时检测手部动作,用食指控制准星,用捏合手势(拇指+食指)射击气球。
简单成品
1. 完整提示词
Create a browser-based balloon shooter with a sky background, using the webcam to track a user’s hand and control an on-screen pointer.
Core requirements
- Sky screen
- Fullscreen sky backdrop (gradient + soft clouds OR skybox).
- Subtle parallax and gentle cloud drift for depth.
- Balloons
- Spawn balloons from the bottom and drift upward with slight side-to-side motion.
- Different sizes (small = faster / worth more, large = slower / worth less).
- Optional wind gusts that shift all balloons briefly.
- Hand pointer
- Use real-time hand tracking from the camera.
- Track index fingertip and map it to screen coordinates.
- Render a crosshair/pointer at that position.
- Add smoothing so the pointer doesn’t jitter (exponential moving average).
- Shooting
- Shooting gesture: pinch (thumb + index) to fire.
- Add a cooldown (e.g., 150–250ms) to prevent accidental rapid-fire.
- When firing, do a raycast / hit-test from the pointer to balloons.
- If hit: pop balloon + add score + combo streak feedback.
- Feedback
- Pop VFX: quick burst particles + optional “rubber fragments.”
- Small screen shake or micro “kick” on hit (subtle).
- Sound toggle (pop + whoosh).
- UI (simple + modern)
- Minimal HUD: score, combo, and a small “calibration” indicator.
- Settings drawer: sensitivity, smoothing, spawn rate, difficulty, left/right hand selection.
- Fallback controls: mouse pointer + click if camera isn’t available.
- Calibration & stability
Include a calibration step:
- Ask the user to hold their hand in view and point to screen corners to fit mapping.
- Handle low-confidence frames:
- If hand not detected, fade crosshair and show “Hand not found” hint.
2. 提示词拆解:为什么这样写?
代码生成过程
这个提示词之所以能生成高质量游戏,核心在于完整需求描述。
关键要素拆解
1. 背景
- 全屏天空背景(渐变 + 柔和云朵 或 天空盒)
- 细微视差和轻柔云朵漂移增加深度
为什么这样写?
- 给出两种实现方案(渐变 OR 天空盒),让 AI 选择。
- 强调视觉层次(视差、漂移),提升沉浸感。
- 使用形容词修饰(细微、轻柔),控制效果强度。
可学习的技巧:
- 描述视觉元素时,提供多种方案增加灵活性。
- 用动词描述动态效果(漂移、飘动、旋转)。
- 强调深度感(视差、层次、景深)。
2. 游戏目标(气球)
- 气球从底部生成并向上漂移,带轻微左右摆动
- 不同大小(小 = 更快 / 分数更高,大 = 更慢 / 分数更低)
- 可选风力突发,短暂移动所有气球
为什么这样写?
- 明确运动逻辑(从底部向上 + 左右摆动)。
- 建立难度机制(大小 → 速度 → 分数)。
- 添加可选元素(风力),增加变化。
可学习的技巧:
- 描述游戏对象时,说明生成位置、运动路径、消失条件。
- 用等式表达机制(小 = 快 = 高分)。
- 用**"可选"**标记非核心功能。
3. 游戏交互(手部指针)
- 使用摄像头实时手部追踪
- 追踪食指指尖并映射到屏幕坐标
- 在该位置渲染准星/指针
- 添加平滑处理,使指针不抖动(指数移动平均)
为什么这样写?
- 指定追踪部位(食指指尖)。
- 说明技术方案(映射到屏幕坐标)。
- 解决常见问题(抖动 → 平滑处理)。
- 给出算法提示(指数移动平均)。
这是整个提示词的核心!
可学习的技巧:
- 描述输入时,明确捕获对象、处理流程、输出形式。
- 预判问题并在提示词中给出解决方案。
- 提供算法名称而非实现细节(让 AI 自己实现)。
4. 射击(交互反馈)
- 射击手势:捏合(拇指 + 食指)开火
- 添加冷却时间(例如 150-250ms)防止意外快速射击
- 开火时,从指针到气球进行射线检测 / 碰撞测试
- 如果击中:气球爆炸 + 增加分数 + 连击反馈
为什么这样写?
- 定义触发手势(捏合)。
- 设置限制机制(冷却时间)。
- 说明检测逻辑(射线检测)。
- 描述反馈链(爆炸 → 分数 → 连击)。
可学习的技巧:
- 交互设计要说明触发条件、执行逻辑、反馈效果。
- 用时间参数约束行为(150-250ms)。
- 用链式描述表达因果关系(如果→那么→接着)。
5. 用户体验(反馈)
- 爆炸视觉特效:快速爆裂粒子 + 可选"橡胶碎片"
- 击中时小幅屏幕震动或微小后坐力
- 声音开关(爆炸音 + 呼啸声)
为什么这样写?
- 描述视觉反馈(粒子特效)。
- 添加触觉反馈(屏幕震动)。
- 包含听觉反馈(声音)。
- 强调强度控制(细微、小幅)。
可学习的技巧:
- 反馈要覆盖视、听、触三个维度。
- 用形容词控制反馈强度(避免过度)。
- 提供开关选项(让用户控制体验)。
6. UI
- 极简 HUD:分数、连击、和小型"校准"指示器
- 设置抽屉:灵敏度、平滑度、生成速率、难度、左/右手选择
- 回退控制:如果摄像头不可用,使用鼠标指针 + 点击
为什么这样写?
- 定义UI 层级(HUD vs. 设置)。
- 列出必要信息(分数、连击、校准)。
- 提供可调参数(灵敏度、难度等)。
- 包含回退方案(摄像头失败 → 鼠标)。
这是提示词的亮点!
可学习的技巧:
- UI 设计要区分常驻信息 vs. 可选设置。
- 列出所有可调参数(让用户自定义体验)。
- 必须包含回退方案(处理硬件不可用情况)。
7. 校准与稳定性(边界处理)
包含校准步骤:
- 要求用户将手保持在视野内并指向屏幕角落以适配映射
- 处理低置信度帧:
- 如果未检测到手,淡出准星并显示"未找到手"提示
为什么这样写?
- 添加初始化流程(校准)。
- 处理异常情况(手检测失败)。
- 提供用户引导(明确操作步骤)。
可学习的技巧:
- 永远考虑边界情况(如果 X 失败,怎么办?)。
- 提供明确的用户指引(而非技术报错)。
- 用渐变效果处理状态切换(淡出而非消失)。
3. 从这个提示词能学到什么?
Gemini
1. 结构化描述法
传统错误写法:
做一个用手势控制的射击游戏,要有气球和分数。
正确写法(结构化):
[游戏概述] ↓ [核心模块 1:背景]
- 具体要求 A
- 具体要求 B [核心模块 2:目标]
- 具体要求 A
- 具体要求 B ...
关键原则:
- 用数字标号分隔模块(1. 2. 3.)。
- 用短横线列举细节(- - -)。
- 用括号补充说明(例如、或、如果)。
2. 技术提示法
不要写:
让指针不要抖动
应该写:
添加平滑处理,使指针不抖动
更多技术提示词示例:
| 需求 | 技术提示 |
|---|---|
| 流畅动画 | 使用 requestAnimationFrame 实现 60fps 动画 |
| 碰撞检测 | 使用边界框(AABB)或圆形碰撞检测 |
| 粒子效果 | 生成 20-50 个粒子,带随机速度和透明度衰减 |
| 音效 | 使用 Web Audio API,预加载音频文件 |
| 数据持久化 | 使用 localStorage 保存最高分 |
4. 还能做哪些手势游戏?
掌握了这个提示词的结构,你可以创作无数手势交互游戏,以下游戏作者还没试过。
1. 水果忍者
核心改动:
- **追踪对象:**整个手掌(而非食指)。
- **交互手势:**快速挥动(检测手部速度)。
- **游戏对象:**从两侧飞入的水果。
- **反馈:**切割轨迹、果汁飞溅。
提示词模板:
创建一个水果忍者游戏:
- 追踪手掌中心坐标和移动速度
- 当速度超过阈值时,绘制挥砍轨迹
- 水果从屏幕两侧随机抛物线飞入
- 如果轨迹与水果相交,切开水果并产生果汁粒子
2. 接球游戏
核心改动:
- **追踪对象:**手掌。
- **交互方式:**手掌水平移动 → 控制接球篮筐。
- **游戏对象:**从顶部掉落的球。
- **难度:**球的速度逐渐加快。
提示词模板:
创建一个接球游戏:
- 追踪手掌中心的 X 坐标
- 在屏幕底部渲染一个篮筐,X 坐标跟随手掌
- 球从顶部随机位置掉落
- 如果球落入篮筐范围,得分并生成新球
- 难度递增:球的掉落速度逐渐加快
3. 飞机躲避游戏
核心改动:
- **追踪对象:**食指。
- **交互方式:**食指 XY 坐标 → 控制飞机位置。
- **游戏对象:**从右侧飞来的障碍物。
- **挑战:**避开障碍物,坚持更长时间。
提示词模板:
创建一个飞机躲避游戏:
- 追踪食指指尖的 XY 坐标
- 在该位置渲染一架小飞机
- 障碍物(如陨石、导弹)从右侧飞入
- 如果飞机碰到障碍物,游戏结束
- 记录生存时间作为分数
4. 音乐节奏游戏
核心改动:
- **追踪对象:**双手(左手和右手分别)。
- **交互手势:**握拳 = 击打。
- **游戏对象:**从顶部下落的音符。
- **挑战:**在音符到达判定线时握拳。
提示词模板:
创建一个音乐节奏游戏:
- 追踪左右手的握拳状态(检测手指弯曲度)
- 音符从顶部分两列下落(左列、右列)
- 底部有判定线
- 当音符到达判定线时,如果对应手握拳,判定为成功
- 根据时机准确度给予 Perfect / Good / Miss 评价
5. 常见问题与解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 手部追踪不稳定 | 光线不足或背景复杂 | 在提示词中要求添加"环境检测"和"背景模糊"功能 |
| 指针抖动严重 | 缺少平滑处理 | 明确要求使用"指数移动平均"或"卡尔曼滤波" |
| 射击手势误触 | 检测阈值不合理 | 要求添加"冷却时间"和"捏合距离阈值调节" |
| 性能问题(卡顿) | 粒子效果过多 | 要求"根据设备性能动态调整粒子数量" |
| 左撇子无法使用 | 默认右手映射 | 要求添加"左/右手选择"设置 |
| 校准不准确 | 缺少校准步骤 | 要求添加"四点校准"或"自动边界检测" |
6. 结语
这是我在其他论坛上看到的游戏,同样由 Gemini 制作,但更加精致。
同类作品展示
你不需要会写 JavaScript,只要一段需求描述,Gemini 就能帮你做小游戏。
现在,打开 Gemini,开始创作你的第一个手势游戏吧!
声明:该内容由作者自行发布,观点内容仅供参考,不代表平台立场;如有侵权,请联系平台删除。
标签:



