【游戏功能】
打年糕的分工是完美的双人舞:抡锤的人高高举起狠狠砸下,翻面的人趁锤起锤落的间隙徒手把年糕翻个面——锤子差一寸砸到手上就是事故。今天拆打年糕的表现,看"捶打"和"翻面"的配合怎么做出年味。
一、抡锤、翻面、成型三段循环
打年糕的循环三段。抡锤段:木锤抡起落到石臼里的年糕上,落锤瞬间年糕被砸扁、米粒四溅——年糕的形变要夸张:被砸时压扁一半再回弹,黏糯的质感全在这一压一弹。翻面段:配角趁锤起的间隙徒手翻面——翻面的动画是配角弯腰、双手插入、年糕整体翻转——翻面的人是全场最勇敢的:锤子悬在头顶他把手伸进臼里。成型段:十锤之后年糕变得又扁又匀,出锅装盘——成型度随锤数爬升,年糕从颗粒感变成光洁感,色泽从米白转成润白。三段的配合节奏是"锤起—翻面—锤落",翻面的人必须在锤落前抽手——这个间隙就是打年糕全部的默契。
完整演示在这,点抡锤:
fx-mochi
二、幂尔框架实现:落锤延迟与翻面窗口
落锤有零点一八秒的延迟窗口,配角在窗口内翻面:
local Mochi = {}
local KEY = { FALL = 0.18, GOAL = 10 }
local hits, moldFlat = 0, 0
function MC.Swing(self_)
if SL:GetValue("hammerSwing") then return end
SL:SetValue("hammerSwing", true)
SL:ScheduleOnce(function()
-- 落锤: 年糕压扁
moldFlat = math.min(1, moldFlat + 0.09 * (SL:GetValue("power") / 80))
SL:PlayFxAt("mash_splash", 330, SL:GetValue("mortarY") - 8)
SL:PlayBurst(330, SL:GetValue("mortarY") - 8, "rice_fly", 6)
SL:PlaySfx("thud")
hits = hits + 1
-- 配角翻面窗口: 锤起后零点三秒
SL:ScheduleOnce(function()
if hits < KEY.GOAL then
SL:PlayActorAct("turner", "flip")
SL:ScheduleOnce(function()
moldFlat = moldFlat * 0.85 -- 翻面回弹一点
end, 0.25)
end
end, 0.3)
-- 出锅判定
if hits >= KEY.GOAL then
SL:PlayFxAt("mochi_done", 330, SL:GetValue("mortarY"))
SL:ShowSystemTips("年糕出锅!")
SL:SetValue("phase", "rest")
else
SL:SetValue("hammerSwing", false)
end
end, KEY.FALL)
end
return MC
翻面后的年糕回弹零点八五——翻面会把压扁的年糕拢起来一点,这个细节让翻面不只是表演,还是工序。
三、捶打节奏与出锅的仪式
捶打的节奏是"重—轻—重"的循环:重锤压实、轻锤找平,一重一轻年糕才匀——匀速乱锤打出来的年糕一边厚一边薄。出锅的仪式是全场最隆重的一拍:十锤完毕,配角双手捧出年糕放进方盘,年糕表面撒一层黄豆粉——黄豆粉是年糕出锅的礼花。锤子的音效两段:抡起的风声、落锤的闷响——闷响要"闷",清脆的是敲锣不是打年糕。米粒飞溅的粒子用年糕的本色米白——白色的米粒落在深色石臼里,每一粒都看得见。最后,成型度的播报用"成型"替换"进度"——打年糕的目标不是进度条,是一块能吃的年糕,文案里的每个词都要带着粮食的温度。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 围住一只怪的贪心人人都有:三面堵死一只不漏——可围三阙一的规矩偏偏唱反调:围三面留一口,怪只会往那口里钻——口…
【游戏功能】 元素搭配的老话是水火不容,可战场上的说法得倒过来念:水是雷的引信。引水的机制是一场两步的合谋:先泼一瓢水把地泼…
【游戏功能】 低血大怪的回血机制人人见过,可血珠的回血藏着一手"要你去抢"的心机:它每掉两成血就吐一颗血珠在地上,两秒内不踩…
【游戏功能】 隐形怪人人都遇到过,可现身的机制比隐形狠:它钻进影子里消失,一秒后从你脚下画的影圈里钻出来,背刺三十四点——影…
【游戏功能】 有人纳闷:大怪危机预警里最气人的一档是什么?不是它放大招,是它开阵——法阵一转,转满三秒蹦出两只小狼,好好的单…
【游戏功能】 if chg <= 0.8 then lock = true ——一行把"锁定"写进蓄力里的判定,道破了蓄力炮…