【游戏功能】
"这一刀下去,西瓜会变成几瓣?"——切水果的判定看似一刀两断,实则是刀光轨迹和果身的相交几何。今天拆切水果的表现,看一根手指的划动怎么切出满屏果汁。
一、抛果、划刀、两半分飞三段循环
切水果的循环三段。抛果段:水果从画面下缘抛到半空,抛物线到顶点时短暂悬停——悬停的零点几秒是玩家的切割窗口,窗外的水果爱莫能助。划刀段:手指划出一道刀光,刀光双层描边、亮芯外晕、转瞬即逝——刀光的轨迹就是判定的依据:轨迹与果身相交,切!两半分飞段:被切中的水果沿刀光方向分成两半,两半带旋转分向左右下坠,果汁粒子四溅——两半的分离方向必须顺着刀光的方向,逆着切分飞是物理事故。三段的核心是刀光的"瞬时":刀光的生命不到半秒,但每一刀都有形有声有色。
完整演示在这,抛果后点击切割:
fx-slice
二、幂尔框架实现:轨迹相交与两半分离
切割判定按点与果身的距离盒校验,两半沿刀向分离:
local FruitSlice = {}
local KEY = { HALF_V = 70, GRAVITY = 380 }
function FS.Slice(x, y)
-- 刀光: 以点击点为中心的斜向刀痕
SL:PlayFxAt("blade_line", x - 60, y + 40, x + 60, y - 40)
SL:PlaySfx("slice")
for i = #fruits, 1, -1 do
local f = fruits[i]
if not f.sliced
and math.abs(f.x - x) < 34
and math.abs(f.y - y) < 34 then
table.remove(fruits, i)
-- 两半分飞: 顺着刀光方向的法线分开
local nx, ny = 1, -0.6
local len = math.sqrt(nx * nx + ny * ny)
nx, ny = nx / len, ny / len
halves[#halves + 1] = {
x = f.x - nx * 4, y = f.y - ny * 4,
vx = f.vx - nx * KEY.HALF_V,
vy = f.vy * 0.5 - ny * 30,
rot = f.rot - 0.6, side = -1, def = f.def
}
halves[#halves + 1] = {
x = f.x + nx * 4, y = f.y + ny * 4,
vx = f.vx + nx * KEY.HALF_V,
vy = f.vy * 0.5 + ny * 30,
rot = f.rot + 0.6, side = 1, def = f.def
}
SL:SetValue("score", SL:GetValue("score") + 10)
SL:SetValue("combo", SL:GetValue("combo") + 1)
SL:PlayBurst(f.x, f.y, "juice", 8)
end
end
end
function FS.Tick(dt)
for i = #halves, 1, -1 do
local h = halves[i]
h.vy = h.vy + KEY.GRAVITY * dt
h.x = h.x + h.vx * dt
h.y = h.y + h.vy * dt
h.rot = h.rot + h.side * dt * 3
if h.y > SL:GetValue("height") + 40 then
table.remove(halves, i)
end
end
end
return FS
两半的分离方向沿刀光的法线——竖着切横着分,横着切上下分,切口的诚实是最容易被忽略的细节。
三、连切倍率与果汁配色
连切倍率是 combo 的灵魂:一秒内连续切开多果,倍率从一档涨到四档,数字的颜色跟着变——连切的判定窗口一秒一刷新,断刀就清零。果汁的配色必须继承果肉的内色而不是果皮色:切西瓜喷红瓤不喷绿皮——玩家对果肉的期待是刻在认知里的。抛果的节奏也有讲究:每次抛三颗、间隔随机、落点错开——满屏同高同速的水果是阅兵不是挑战。最后,切空的刀光同样要有:没有命中任何水果,刀光照样划过、照样有声——切空的刀声是玩家的自我检讨,也是"我出手了"的证明。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 围住一只怪的贪心人人都有:三面堵死一只不漏——可围三阙一的规矩偏偏唱反调:围三面留一口,怪只会往那口里钻——口…
【游戏功能】 元素搭配的老话是水火不容,可战场上的说法得倒过来念:水是雷的引信。引水的机制是一场两步的合谋:先泼一瓢水把地泼…
【游戏功能】 低血大怪的回血机制人人见过,可血珠的回血藏着一手"要你去抢"的心机:它每掉两成血就吐一颗血珠在地上,两秒内不踩…
【游戏功能】 隐形怪人人都遇到过,可现身的机制比隐形狠:它钻进影子里消失,一秒后从你脚下画的影圈里钻出来,背刺三十四点——影…
【游戏功能】 有人纳闷:大怪危机预警里最气人的一档是什么?不是它放大招,是它开阵——法阵一转,转满三秒蹦出两只小狼,好好的单…
【游戏功能】 if chg <= 0.8 then lock = true ——一行把"锁定"写进蓄力里的判定,道破了蓄力炮…