【游戏功能】
对对联是文人的猜拳:上联出完,三支下联签里只有一支接得住——选对金光进阶,选错墨点糊脸。今天拆对对联的表现,看文字游戏怎么用灯笼和卷轴做出书香气。
一、挂联、选签、判等三段仪式
对对联的仪式三段。挂联段:上联写在金色卷轴上横挂顶端,楷书大字一挂出来,题面就立住了。选签段:三支下联签纵向排开,点选一支即作答——三选一的容错让文盲也能玩,文化门槛被选项稀释,文字游戏的参与感却保留。判等段:选中的签展开判定——选对绿光点亮签面、"对上了"加文采分;选错红光、"墨点糊脸"连击清零。进阶机制藏在连对里:连对三题称号进阶一级(童生→秀才→举人→贡士→状元)——称号是文字游戏里最值钱的成就,比分数值钱十倍。
完整演示在这,点签选下联:
fx-couplet
二、幂尔框架实现:题库轮换与判等反馈
题库随机轮换,选项打乱防止背位置:
local Couplet = {}
local SETS = {
{ up = "风吹杨柳千门绿", ok = "雨打桃花万树红",
bad = { "雪压寒梅一夜白", "日照青松百尺高" } },
{ up = "书山有路勤为径", ok = "学海无涯苦作舟",
bad = { "学海无涯乐作舟", "学海无边快回头" } },
{ up = "两个黄鹂鸣翠柳", ok = "一行白鹭上青天",
bad = { "一枝红杏出墙来", "三只乌鸦落枯枝" } }
}
local TITLES = { "童生", "秀才", "举人", "贡士", "状元" }
function CP.Next()
local set = SETS[math.random(#SETS)]
SL:SetValue("upLine", set.up)
SL:SetValue("okLine", set.ok)
-- 三个选项: 一对两错, 洗牌打乱位置
local opts = { set.ok, set.bad[1], set.bad[2] }
for i = #opts, 2, -1 do
local j = math.random(i)
opts[i], opts[j] = opts[j], opts[i]
end
SL:SetValue("opts", opts)
SL:SetValue("picked", -1)
end
function CP.Pick(idx)
if SL:GetValue("phase") ~= "pick" then return end
SL:SetValue("picked", idx)
SL:SetValue("phase", "judge")
local opts = SL:GetValue("opts")
local ok = opts[idx] == SL:GetValue("okLine")
if ok then
SL:SetValue("score", SL:GetValue("score") + 10)
SL:SetValue("streak", SL:GetValue("streak") + 1)
SL:PlayFxAt("lantern_lit", SL:GetValue("optX", idx))
-- 连对三题进阶称号
if SL:GetValue("streak") >= 3 then
SL:SetValue("streak", 0)
local t = math.min(5, SL:GetValue("titleLv") + 1)
SL:SetValue("titleLv", t)
SL:ShowSystemTips("文采进阶: " .. TITLES[t])
end
else
SL:SetValue("streak", 0)
SL:PlayFxAt("ink_splash", SL:GetValue("optX", idx))
SL:ShowSystemTips("接错了 — 墨点糊脸")
end
SL:ScheduleOnce(function()
CP.Next()
end, 1.5)
end
return CP
选项洗牌的三行是反背题的关键:题库小,位置不洗两天就被背穿。
三、错项的写法与判等的墨味
错项的写法是题库的良心:错得不能太蠢("更上一层表"是谐音梗级别的错,一眼假),也不能太深(平仄之辩没人在三秒内想明白)——错项要用"同一个字换得妙"的干扰法:桥/表换掉楼,一眼扫过去都对,细读才发现只有"楼"接得住"千里目"。判等的反馈走双色:对绿错红,绿光点亮签面、红光配一个墨点砸在签面上——墨点是文人才配拥有的失败特效。卷轴的画法三件套:金色底、描边框、楷书大字——楷体是对联的魂,用黑体上联等于用塑料袋装粽子。最后,称号进阶的播报要盖过得分:文采进阶用系统栏大字播报,十点文采用小字飘分——称号是文人的一生所求,分数只是路上的石子。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 围住一只怪的贪心人人都有:三面堵死一只不漏——可围三阙一的规矩偏偏唱反调:围三面留一口,怪只会往那口里钻——口…
【游戏功能】 元素搭配的老话是水火不容,可战场上的说法得倒过来念:水是雷的引信。引水的机制是一场两步的合谋:先泼一瓢水把地泼…
【游戏功能】 低血大怪的回血机制人人见过,可血珠的回血藏着一手"要你去抢"的心机:它每掉两成血就吐一颗血珠在地上,两秒内不踩…
【游戏功能】 隐形怪人人都遇到过,可现身的机制比隐形狠:它钻进影子里消失,一秒后从你脚下画的影圈里钻出来,背刺三十四点——影…
【游戏功能】 有人纳闷:大怪危机预警里最气人的一档是什么?不是它放大招,是它开阵——法阵一转,转满三秒蹦出两只小狼,好好的单…
【游戏功能】 if chg <= 0.8 then lock = true ——一行把"锁定"写进蓄力里的判定,道破了蓄力炮…