Line clear easing is now quadratic for all line clear delays.

This commit is contained in:
BoatsandJoes 2021-12-02 16:22:29 -06:00
parent e464307625
commit 9e59c158b2

View File

@ -612,18 +612,8 @@ function GameMode:animation(x, y, skin, colour)
if self.last_lcd ~= 0 then if self.last_lcd ~= 0 then
progress = (self.last_lcd - self.lcd) / self.last_lcd progress = (self.last_lcd - self.lcd) / self.last_lcd
end end
-- Change this number to change "bounciness" -- Convert progress through the animation into an alpha value, with easing
local bounce = 13 local alpha = 1 - progress ^ 2
-- Convert progress through the animation into an alpha value
local alpha = 0
-- Cutoff is arbitrary: corresponds to level 500 in Marathon A2
if self.last_lcd > 25 then
-- Goes up and down: looks better when animation is long
alpha = 1 - (bounce * progress^3 - 1.5 * bounce * progress^2 + (0.5 * bounce + 1) * progress)
else
-- Always decreasing: looks better when animation is short
alpha = 1 - progress * progress
end
return { return {
1, 1, 1, 1, 1, 1,
alpha, alpha,
@ -641,7 +631,26 @@ function GameMode:drawLineClearAnimation()
-- params: block x, y, skin, colour -- params: block x, y, skin, colour
-- returns: table with RGBA, skin, colour, x, y -- returns: table with RGBA, skin, colour, x, y
-- Flashy Fadeout (default) -- Quadratic Fadeout (default)
--[[
function animation(x, y, skin, colour)
-- Animation progress where 0 = start and 1 = end
local progress = 1
if self.last_lcd ~= 0 then
progress = (self.last_lcd - self.lcd) / self.last_lcd
end
-- Convert progress through the animation into an alpha value, with easing
local alpha = 1 - progress ^ 2
return {
1, 1, 1,
alpha,
skin, colour,
48 + x * 16, y * 16
}
end
--]]
-- Flashy Fadeout
--[[ --[[
function animation(x, y, skin, colour) function animation(x, y, skin, colour)
-- Animation progress where 0 = start and 1 = end -- Animation progress where 0 = start and 1 = end