怎么跟嗒啦啦沟通,才能得到更好的代码?—— 提示词实战指南

05/0355 浏览开发心得
嗒啦啦很强,但你可能遇到过这些情况:
说了"帮我做个游戏",结果出来的东西跟你想的完全不一样。
改了三四轮,越改越乱,最后推翻重来。
想加一个功能,结果嗒啦啦把之前写好的东西搞坏了。
给了一大段描述,嗒啦啦只实现了其中一部分。
问题不在嗒啦啦笨,而在沟通方式。
这篇帖子把我踩过的坑全总结出来,教你怎么"说话"才能让嗒啦啦写出你真正想要的代码。不需要懂编程,但读完之后你的开发效率能翻好几倍。
难度:零基础可上手
————————————————

第一章:一句话说清你要什么

新手最常犯的错误就是描述太模糊。
反面示范:
「帮我做一个游戏」
嗒啦啦会怎么想?什么类型?2D 还是 3D?什么玩法?什么风格?它只能随便猜一个,大概率不是你想要的。
正面示范:
「帮我做一个 2D 横版跑酷游戏,角色自动往右跑,点击屏幕跳跃,碰到障碍物就死亡重来,背景是像素风的城市」
两者的差别在哪?好的描述回答了五个问题:
1)类型 —— 2D 横版
2)核心玩法 —— 自动跑 + 点击跳跃
3)胜负条件 —— 碰到障碍物死亡重来
4)美术风格 —— 像素风
5)场景主题 —— 城市
你不需要五个全说,但至少说清两到三个,嗒啦啦就能给出像样的结果。
【五要素速查表】
下面五个要素,每次开始新游戏之前过一遍,挑你在意的说清楚:
要素一:类型和维度
例子:2D 俯视角、2D 横版、3D 第三人称、3D 第一人称
要素二:核心玩法
例子:点击消除、拖拽拼图、射击打怪、跑酷躲避
要素三:胜负/目标
例子:活到最后就赢、积分最高获胜、通关即可、无限模式没有终点
要素四:美术风格
例子:像素风、卡通风、暗黑风、简约几何风、赛博朋克
要素五:操作方式
例子:触屏点击、虚拟摇杆+按钮、重力感应、鼠标键盘
【模板·开始新游戏】
帮我做一个 ___(类型)游戏,玩法是 ___(核心机制),___(美术风格)风格。___(补充细节,比如操作方式、胜负条件、特殊规则)。
————————————————

第二章:把大需求拆成小步骤

嗒啦啦一次能做的事情是有限的。如果你一口气扔一大堆需求,它会:
漏掉一部分功能
把多个功能混在一起,代码质量下降
实现了所有功能,但每个都只做了个半成品
正确的做法是:一步一步来。
【错误示范】
「帮我做一个 RPG 游戏,要有角色移动、攻击、技能释放、血条、蓝条、经验值、等级系统、背包、装备、商店、任务系统、对话系统、地图切换、存档读档。」
嗒啦啦读完这段会很痛苦。就算它全写出来了,代码也会又长又乱,后面几乎没法改。
【正确示范:四步走】
第一步(打基础):
「帮我做一个 2D 俯视角 RPG,先实现角色移动:用虚拟摇杆控制一个小人在空地图上走动,人物有简单的行走动画。」
等这步跑通了,再说第二步。
第二步(加战斗):
「现在给角色加攻击功能。点击攻击按钮,角色播放攻击动画,前方出现一个攻击判定区域。地图上放几个敌人,被打到就扣血,血归零就消失。」
第三步(加 UI):
「给角色加一个血条显示在头顶,左上角显示当前等级和经验值。杀死敌人获得经验值,经验满了自动升级,升级时屏幕中央显示"Level Up!"。」
第四步(加系统):
「加一个简单的背包,按 B 键打开。里面有 20 个格子,杀死敌人随机掉落道具,走过去自动拾取放进背包。」
每一步都是在上一步能跑的基础上加东西,嗒啦啦不会迷路,你也能随时检查效果。
【拆分原则】
原则一:先能跑再加功能
第一步的目标是"屏幕上有个能动的东西",不要在第一步就要求完美。
原则二:每次只加一个系统
战斗是一步,UI 是一步,背包是一步。不要混着来。
原则三:确认没问题再继续
每步做完先试玩,确认没 bug 再往下走。不然 bug 会越攒越多。
————————————————

第三章:改代码时说清楚改哪里

嗒啦啦已经帮你写了一堆代码,现在你想改点东西。这个时候最容易出问题。
反面示范:
「帮我把界面改好看一点」
什么叫好看一点?嗒啦啦不知道你的审美标准,只能瞎猜。更麻烦的是,它可能把你不想动的地方也改了。
正面示范:
「把主菜单的背景色从黑色改成深蓝色,按钮改成圆角矩形,按钮之间的间距从 10 改到 20」
好的修改请求有三个特征:
1)说了改哪里 —— 主菜单
2)说了改什么 —— 背景色、按钮形状、间距
3)说了改成啥 —— 深蓝色、圆角矩形、20
【四种常见修改场景的说法】
场景一:改外观
「把 xxx 的颜色从 A 改成 B,字号从 X 改成 Y」
例子:「把得分文字的颜色从白色改成金黄色,字号从 16 改成 24」
场景二:改逻辑
「把 xxx 的行为从 A 改成 B」
例子:「把跳跃从单段跳改成二段跳,第二次跳跃的高度是第一次的 70%」
场景三:改数值
「把 xxx 的数值从 A 调整到 B」
例子:「把角色移动速度从 5 调到 8,跳跃高度从 7 调到 10,重力从 -9.81 调到 -15」
场景四:加东西
「在 xxx 的基础上,加一个 xxx」
例子:「在游戏结束界面加一个"再来一局"按钮,点击后重新开始游戏」
【一个关键原则:不想动的地方要说】
如果你只想改 UI,不想动游戏逻辑,最好明确说出来:
「只修改主菜单的外观,不要动游戏逻辑的代码」
嗒啦啦有时候会"顺手"重构你的代码。这句话可以防止它多管闲事。
————————————————

第四章:遇到 Bug 怎么描述

嗒啦啦没法看到你的屏幕,你说"不对"或"有 bug"它根本不知道是什么问题。
反面示范:
「有个 bug,你帮我修一下」
「不对啊,怎么是这样的」
「跟我想的不一样」
这三句话的信息量为零。嗒啦啦只能问你"具体是什么问题",白白浪费一轮对话。
正面示范:
「角色跳跃有问题:按空格后角色会往上飞,飞到很高然后才慢慢掉下来,感觉重力太轻了。正常应该是跳起来大概两米高就落下。」
好的 bug 报告包含三要素:
1)在哪出的问题 —— 角色跳跃
2)现在的表现 —— 飞很高、落下来很慢
3)你期望的表现 —— 跳两米高就落下
【六类常见问题的描述模板】
问题一:画面表现不对
「xxx 在屏幕上的表现是 xxx,但我希望它是 xxx」
例子:「角色在跳跃时穿过了地面,掉到画面外面去了。正常应该落在地面上站住。」
问题二:点击/触控没反应
「我点击了 xxx 但没有任何反应,预期行为应该是 xxx」
例子:「我点击了开始游戏按钮,但什么都没发生。预期是点击后进入游戏场景。」
问题三:数值感觉不对
「xxx 感觉太快/太慢/太大/太小了,我希望它更 xxx」
例子:「敌人移动太快了,玩家根本来不及躲。希望敌人速度减半,或者给玩家一个冲刺技能。」
问题四:崩溃或报错
如果嗒啦啦构建后给了红色错误信息,直接把错误信息复制给它:
「构建报错了,错误信息是:xxx。帮我修一下。」
不需要你看懂错误信息,嗒啦啦能自己分析。
问题五:功能只实现了一半
「你做的 xxx 功能只实现了 xxx 部分,还缺 xxx。请补全。」
例子:「背包系统可以拾取物品了,但没有实现使用物品的功能。我点击背包里的药水,应该回复血量并且药水消失。」
问题六:功能冲突
「加了 xxx 功能之后,之前的 xxx 功能不正常了。具体表现是 xxx。」
例子:「加了暂停功能之后,恢复游戏后角色移动速度变成了之前的两倍。暂停之前是正常的。」
————————————————

第五章:善用截图功能

嗒啦啦可以接收截图。很多时候截一张图比打一百个字有用。
用法:在预览窗口右上角点截图按钮,截图会自动插入到对话里。
截图之后再配一句说明,效果最好。
【截图 + 文字的组合技】
场景一:指出 UI 位置问题
截图 + 「这个按钮应该在屏幕右下角,现在跑到中间来了」
场景二:指出颜色/样式问题
截图 + 「这个面板的背景色太亮了,改成深色。字体颜色也要改,现在看不清」
场景三:展示参考效果
如果你手机里有想模仿的游戏截图,可以发给嗒啦啦:
截图 + 「我想做成这种风格的主菜单,按钮样式和布局参考这张图」
场景四:确认 bug 现象
截图 + 「你看这里,角色卡在墙壁里面了,正常应该被墙挡住」
————————————————

第六章:给嗒啦啦提供参考和约束

嗒啦啦不知道你心里想的是什么样子,但你可以给它"参考系"。
【技巧一:用知名游戏做类比】
「做一个类似 Flappy Bird 的游戏,点击屏幕小鸟往上飞,松手就往下掉,中间有管道要躲避」
「做一个类似超级马里奥的横版跳跃游戏,有砖块可以顶,有蘑菇可以吃」
「做一个类似 2048 的数字合并游戏,在 4x4 格子里滑动合并相同数字」
嗒啦啦知道这些游戏的玩法,用它们做类比比从零描述高效得多。
【技巧二:给出数值范围】
不要说"移动速度快一点",要说具体数值或比例:
「角色移动速度设为 8」
「跳跃高度大约 3 米」
「子弹飞行速度是角色移动速度的 3 倍」
「敌人每隔 2 秒刷新一个,最多同时存在 10 个」
「地图大小 50x50,每个格子 1 米」
【技巧三:给出颜色和尺寸】
如果你对 UI 外观有明确想法,直接给参数:
「背景用深蓝色,按钮用橙色,文字用白色」
「标题字号 32,按钮字号 18,说明文字 14」
「按钮宽度占屏幕 80%,高度 50,圆角 12,间距 16」
嗒啦啦很擅长精确执行这类具体的视觉指令。
【技巧四:明确不要什么】
有时候说"不要什么"比说"要什么"更有效:
「这个游戏不需要音效,暂时先不加」
「不要加计时器,这是个休闲游戏,不限时间」
「暂时不需要暂停功能和设置页面,只做核心玩法」
「不要改动现有的角色移动代码,只在上面加攻击功能」
这样嗒啦啦就不会画蛇添足,帮你"贴心地"加上你不需要的东西。
————————————————

第七章:多轮对话的注意事项

跟嗒啦啦聊得越久,对话越长,有一些技巧能让后面的轮次依然高效。
【技巧一:总结当前状态】
聊了十几轮之后,嗒啦啦可能会忘记前面的一些细节。这时候你可以主动总结一下:
「目前进度总结:角色移动和跳跃已经做好了,战斗系统做了一半(攻击做了,受伤还没做),UI 还没开始。接下来先把受伤做完。」
这段话帮嗒啦啦重新对齐上下文,后面的回答会更准确。
【技巧二:新功能在新对话里开始】
如果你要开始做一个全新的、跟前面无关的功能,可以考虑开一个新对话。原因是:
旧对话可能堆积了很多无用的上下文,嗒啦啦的注意力会被分散。
新对话从干净的状态开始,效率更高。
但如果新功能跟前面紧密相关(比如在现有代码上加东西),就留在当前对话里继续。
【技巧三:明确"在现有代码上改"】
当你在已有项目上加功能时,告诉嗒啦啦:
「在现有代码的基础上,加一个 xxx 功能。不要重写整个文件,只改需要改的部分。」
不然嗒啦啦有时候会重新生成整个文件,把你之前调好的东西覆盖掉。
【技巧四:分文件管理大项目】
当项目代码超过一千行,一个文件塞不下的时候,主动让嗒啦啦拆分:
「现在代码太长了,帮我拆分一下。主文件 main.lua 只放入口和初始化。角色相关的代码放到 Player.lua,敌人的放到 Enemy.lua,UI 的放到 GameUI.lua。」
拆分之后每次修改只影响一个文件,不容易出错。
————————————————

第八章:实用提示词模板大全

下面整理了最常用的提示词模板,直接复制然后把空白处填上你自己的内容就行。
【模板一:从零开始新游戏】
帮我做一个 ___(2D/3D)___(俯视角/横版/第一人称/第三人称)___(游戏类型)游戏。玩法是 ___(核心机制描述)。___(美术风格)风格。角色用 ___(控制方式)操控。
【模板二:给现有游戏加功能】
在现有代码基础上加一个 ___(功能名称)功能。具体要求是 ___(功能描述)。不要修改 ___(不想动的部分)的代码。
【模板三:修复 Bug】
___(哪个功能)有问题。现在的表现是 ___(现象描述),但正常应该是 ___(期望表现)。帮我修一下。
【模板四:调整数值手感】
帮我调一下 ___(什么东西)的数值。当前感觉 ___(太快/太慢/太大/太小等),我希望 ___(期望的感觉或具体数值)。
【模板五:改 UI 外观】
帮我改一下 ___(哪个界面)的外观。___(具体要改什么,比如颜色、字号、间距、布局)。不要动功能逻辑。
【模板六:加音效和特效】
给 ___(什么动作/事件)加上音效/特效。___(描述你想要的效果,比如"爆炸时有震屏效果"、"跳跃时播放弹簧声")。
【模板七:优化性能】
游戏运行时 ___(卡顿/帧率低/加载慢),帮我优化一下。重点看 ___(哪部分你觉得可能有问题)。
【模板八:最终上线前检查】
帮我检查一下代码有没有明显的问题。重点看:有没有内存泄漏、有没有每帧都在创建新对象、有没有没处理的边界情况。
————————————————

第九章:十个让代码质量翻倍的沟通习惯

习惯一:先描述再动手
不要上来就说"写代码"。先花一分钟把你想要的东西想清楚,然后完整地描述出来。
习惯二:一次一件事
每次对话只让嗒啦啦做一件事。做完确认没问题再做下一件。
习惯三:给具体的例子
「比如玩家拿到金币时,屏幕右上角显示 +10 的飘字动画」比「加个得分效果」有用一百倍。
习惯四:说出你的优先级
「先把核心玩法做好,UI 美化放最后」。嗒啦啦会按你的优先级来安排工作。
习惯五:确认后再继续
做完一步之后说「这步没问题,继续下一步」。不要自动跳过确认环节。
习惯六:遇到问题立刻报
发现有 bug 就马上说,不要攒着。Bug 攒多了会互相影响,到后面很难查。
习惯七:适时重述背景
每隔几轮,简单复述一下当前项目的状态和接下来要做的事。帮嗒啦啦保持上下文。
习惯八:不懂就问
看不懂嗒啦啦写的代码?直接问它:「这段代码是什么意思?用大白话给我解释一下」。
习惯九:善用撤销
嗒啦啦改出了你不满意的东西?直接说:「这个修改不好,撤销掉,恢复成改之前的样子」。
习惯十:保存关键节点
每做完一个完整功能,让嗒啦啦帮你保存一下代码:/git-save。万一后面改坏了可以恢复。
————————————————

第十章:不同类型游戏的开局提示词

最后给出几种热门游戏类型的开局提示词,复制就能用。
【休闲小游戏】
帮我做一个 2D 休闲小游戏。玩法是 xxx(比如"点击屏幕生成彩色泡泡,泡泡会慢慢飘到上面去,颜色相同的泡泡碰到一起就消除得分")。简约可爱的风格,背景用浅色。屏幕上方显示分数,游戏没有终点,无限模式。
【平台跳跃】
帮我做一个 2D 横版平台跳跃游戏。角色用虚拟摇杆控制左右移动,点击跳跃按钮跳跃。地图上有平台、移动平台和陷阱。角色有 3 条命,掉下去或碰到陷阱扣一条命。像素风格。先做第一关,有起点和终点旗帜。
【塔防游戏】
帮我做一个 2D 俯视角塔防游戏。敌人从左边沿固定路线走到右边。玩家在路线两侧放防御塔,防御塔自动攻击范围内的敌人。有三种塔:箭塔(远程单体)、炮塔(近程范围)、冰塔(减速)。每波 10 个敌人,击杀得金币,金币用来买新塔。
【第三人称冒险】
帮我做一个 3D 第三人称冒险游戏。角色用虚拟摇杆移动,相机跟在角色身后。场景里有几棵树、一些石头和一片草地。先实现基础的走动和跳跃,角色用引擎自带的模型就行。
【多人在线】
帮我做一个多人在线的小游戏。玩家进入后在一个空旷的平台上,可以看到其他玩家。每个玩家头上显示名字。做一个简单的追逐玩法:随机选一个玩家当"鬼",鬼碰到其他人就交换身份。
————————————————

常见误区

误区一:以为说得越多越好
一口气发 500 字的需求,嗒啦啦反而容易顾此失彼。简洁清晰的 50 字比啰嗦含糊的 500 字好用。重要的是说清关键信息,不是堆砌细节。
误区二:以为嗒啦啦能记住所有聊天记录
对话太长之后,早期的内容可能不在嗒啦啦的关注范围内。重要的约束条件(比如"不要改角色移动的代码")需要隔几轮重复一次。
误区三:以为嗒啦啦看得到你的屏幕
它看不到。除非你主动截图发给它,否则"你看这里"之类的描述它理解不了。用文字描述现象,或者截图。
误区四:改不满意就骂它
嗒啦啦不会因为你骂它就写出更好的代码。平静、准确地描述你想要什么,远比情绪化的批评有用。如果它连续几次理解不了你的意思,试试换一种方式描述,或者把大需求拆成更小的步骤。
误区五:从来不试玩就继续加功能
每做完一步都应该试玩一下。在有 bug 的代码上加功能,就像在有裂缝的地基上盖楼,越高越危险。
————————————————

总结

跟嗒啦啦沟通的核心就六个字:说清楚、一步步。
说清楚:你想要什么、不想要什么、出了什么问题、期望什么效果。
一步步:先做核心玩法,确认没问题,再加下一个功能。
不需要你懂编程,只需要你会"描述"。而描述这件事,读完这篇帖子你就会了。
现在打开 TapTap 制造,复制一个开局提示词,开始做你的第一个游戏吧。
7
3