【游戏功能】
扎染的花样是捆出来的:布上的白花是捆扎时染不到色的留白——捆法决定花样,解开那一下才是惊喜。今天拆扎染的表现,看"防染"这个反向逻辑怎么做出蓝底白花的纹样。
一、捆扎、浸染、展开三段成样
扎染的成样三段。捆扎段:白布团用绳十字捆扎,捆绳的位置就是留白的边界——捆得越紧留白越锐利。浸染段:布团浸入靛蓝缸,浸一次色深一档,蓝从浅到深层层加深——浸染的次数是颜色的存款,存一次加深一档。展开段:解开捆绳,蓝底白花的纹样铺开——放射状的白花从捆点向外辐射,解开的瞬间纹样定格。三段的核心是"防染"的巧思:染是全体的,白是局部的——白花不是画上去的,是捆绳"保护"出来的,反向思维是扎染的灵魂。
完整演示在这,先浸染再解开:
fx-tiedye
二、幂尔框架实现:色深叠加与放射留白
浸染按次数叠色深,展开的留白按放射环绘制:
local TieDye = {}
local KEY = { MAX_DIP = 5 }
local dips, opened, openK = 0, false, 0
function TD.Dip()
if opened then return end
dips = dips + 1
SL:SetValue("dips", dips)
SL:PlayBurst(330, 160, "indigo_ripple", 6)
SL:PlaySfx("dip", dips % 3)
SL:ShowSystemTips("浸染 " .. dips .. " 次")
end
function TD.Open()
if dips == 0 or opened then return end
opened = true
SL:PlaySfx("unfold")
-- 展开: 白花从中心放射铺开
SL:Schedule(function(dt)
openK = math.min(1, openK + dt * 1.1)
SL:SetFxScale("cloth", 0.3 + 0.7 * openK)
SL:SetFxAlpha("cloth", openK)
-- 放射白花: 三环白圈错落
for ring = 1, 3 do
local rr = 40 + ring * 36
local count = 6 + ring * 4
for i = 1, count do
local a = i / count * 6.28
SL:DrawWhiteDot(math.cos(a) * rr, math.sin(a) * rr,
16 - ring * 3)
end
end
SL:DrawWhiteDot(0, 0, 26) -- 中心大白花
if openK >= 1 then
SL:UnSchedule("unfoldRun")
SL:ShowSystemTips("蓝底白花成样!")
end
end, 0.016, "unfoldRun")
end
return TD
三环白圈的数量递增(六、十、十四)——内圈花大而疏、外圈花小而密,放射的层次就是扎染的图案语言。
三、色深档位与白花的缘分
浸染次数和色深的映射是整套玩法的数值骨架:一次三成蓝、两次六成蓝、三次以上接近全蓝——色深的边际递增让浸染两三次成为最佳实践。白花的"缘分"是扎染的浪漫:捆绳的松紧让留白的形状永远带着一点意外——完全可控的扎染是印刷,带着一点不可控的才是手艺。展开的动画要从捆紧的布团缓缓铺开:布团从紧到松、从团到片,展开的过程本身就是"释放"的隐喻。最后,蓝底白花的配色是扎染的身份:靛蓝配本白,蓝得沉、白得净——别的颜色都可以试,但靛蓝和白是这门手艺的魂。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 威压诀的全机制就一句:把气提到刀上,脚下荡开一圈威压场——圈里的怪刀软一半、出手慢半拍,你的刀对它加五成;怪不…
【游戏功能】 vd = hot and base 2 or base ——一行两倍的乘法,藏在焚祭全部的痛感里:刀翻倍的代价…
【游戏功能】 大怪蓄力蓄到发亮的那一发重击,凭什么有信心接下来?多数玩家的答案是"闪",可闪有冷却、有前摇、有失误——舍身盾…
【游戏功能】 战斗组翻到一笔没人认领的异常:玩家的血条在没有挨打记录的情况下稳定下滑,一秒四点,战斗日志里攻击来源是空的。排…
【游戏功能】 数值组翻过一笔扯皮的账:同一只头目,A 队三分钟放倒,B 队磨了十一分钟还灭了——装备差不到一成,输出差了一倍…
【游戏功能】 借刀符的全机制就一句:一张符掷中谁,谁就中招六秒——六秒里它的爪听你的,转身撕咬自己人,符效一过它回过神来第一…