splash!
This commit is contained in:
parent
6054e2d182
commit
ca7517cc3a
54
vacation.p8
54
vacation.p8
@ -410,7 +410,7 @@ phinstate_rise_wax = phinstate_dive_wane
|
|||||||
phinstate_rise_full = phinstate_dive_full
|
phinstate_rise_full = phinstate_dive_full
|
||||||
|
|
||||||
phinstate_error = {
|
phinstate_error = {
|
||||||
s={17},
|
s={0},
|
||||||
ws=1,
|
ws=1,
|
||||||
hs=2,
|
hs=2,
|
||||||
}
|
}
|
||||||
@ -568,7 +568,7 @@ end
|
|||||||
-- 10: word primary (yellow 10?)
|
-- 10: word primary (yellow 10?)
|
||||||
-- 11: word shadow (wood 132?)
|
-- 11: word shadow (wood 132?)
|
||||||
-- 12: dolphin eye
|
-- 12: dolphin eye
|
||||||
-- 13: light splashy water (12), maybe sky?
|
-- 13: common sky color
|
||||||
-- 14: dolphin primary color
|
-- 14: dolphin primary color
|
||||||
-- 15: highlight white (all layers)
|
-- 15: highlight white (all layers)
|
||||||
--
|
--
|
||||||
@ -619,7 +619,7 @@ mknew(sea)
|
|||||||
|
|
||||||
function sea:draw()
|
function sea:draw()
|
||||||
local w = wave()
|
local w = wave()
|
||||||
rectfill(0, 72+w, 128, 80+w, 0)
|
rectfill(0, 64+w, 128, 80+w, 0)
|
||||||
poke2(0x5f78, 0xFF00.00FF <<> w)
|
poke2(0x5f78, 0xFF00.00FF <<> w)
|
||||||
rectfill(0, 81+w, 128, 89+w, 0x1040.a842)
|
rectfill(0, 81+w, 128, 89+w, 0x1040.a842)
|
||||||
rectfill(0, 90+w, 128, 97+(w>>1), 0x1004.e169)
|
rectfill(0, 90+w, 128, 97+(w>>1), 0x1004.e169)
|
||||||
@ -639,8 +639,8 @@ mknew(arcade_level, function(x)
|
|||||||
-- TODO: decent looking sky and sea
|
-- TODO: decent looking sky and sea
|
||||||
x.sky = bg.new{c=13}
|
x.sky = bg.new{c=13}
|
||||||
x.sea = sea.new()
|
x.sea = sea.new()
|
||||||
-- event list includes words
|
x.bg = event_list.new()
|
||||||
x.e = event_list.new()
|
x.fg = event_list.new()
|
||||||
-- TODO: score renderer
|
-- TODO: score renderer
|
||||||
x.t0 = t()
|
x.t0 = t()
|
||||||
|
|
||||||
@ -648,8 +648,9 @@ mknew(arcade_level, function(x)
|
|||||||
x.sky,
|
x.sky,
|
||||||
x.sea,
|
x.sea,
|
||||||
x.waves,
|
x.waves,
|
||||||
|
x.bg,
|
||||||
x.phin,
|
x.phin,
|
||||||
x.e,
|
x.fg,
|
||||||
}
|
}
|
||||||
|
|
||||||
x.s = scootbox.new()
|
x.s = scootbox.new()
|
||||||
@ -670,22 +671,63 @@ function arcade_level:draw()
|
|||||||
self.s:draw()
|
self.s:draw()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function arcade_level:draw_splash(x, force)
|
||||||
|
if (force < 1) return
|
||||||
|
local n = (force + rnd(force)) & 0x7FF
|
||||||
|
for i=0,n do
|
||||||
|
local d = droplet.new{x=x, force=force, y=72+wave(), f=i/n-0.5}
|
||||||
|
if d.dr < 0 then
|
||||||
|
self.bg:push_back(d)
|
||||||
|
else
|
||||||
|
self.fg:push_back(d)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function arcade_level:dive_splash(x)
|
function arcade_level:dive_splash(x)
|
||||||
-- TODO: sfx, vfx for dive input
|
-- TODO: sfx, vfx for dive input
|
||||||
|
self:draw_splash(x, 3.8)
|
||||||
end
|
end
|
||||||
|
|
||||||
function arcade_level:jump_splash(x)
|
function arcade_level:jump_splash(x)
|
||||||
-- TODO: sfx, vfx for jump input
|
-- TODO: sfx, vfx for jump input
|
||||||
|
self:draw_splash(x, 3.8)
|
||||||
end
|
end
|
||||||
|
|
||||||
function arcade_level:surfacing_splash(x, force, harder)
|
function arcade_level:surfacing_splash(x, force, harder)
|
||||||
-- TODO: sfx, vfx for surfacing from a dive
|
-- TODO: sfx, vfx for surfacing from a dive
|
||||||
|
self:draw_splash(x, force)
|
||||||
end
|
end
|
||||||
|
|
||||||
function arcade_level:landing_splash(x, force, harder)
|
function arcade_level:landing_splash(x, force, harder)
|
||||||
-- TODO: sfx, vfx for landing from a jump
|
-- TODO: sfx, vfx for landing from a jump
|
||||||
|
self:draw_splash(x, force)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
droplet = {}
|
||||||
|
mknew(droplet, function(d)
|
||||||
|
d.dx = d.f * d.force >> 2
|
||||||
|
d.x += 16 * d.f
|
||||||
|
d.dy = -rnd(d.force>>1)
|
||||||
|
d.r = rnd(1) + 1
|
||||||
|
d.dr = rnd(0.025) - 0.0125
|
||||||
|
d.ymo = 255 * d.dr
|
||||||
|
d.c = rnd(splashcols)
|
||||||
|
end)
|
||||||
|
|
||||||
|
function droplet:update()
|
||||||
|
self.x += self.dx
|
||||||
|
self.y += self.dy
|
||||||
|
self.r += self.dr
|
||||||
|
self.dy += 0.3
|
||||||
|
return self.y > self.ymo + 72 + wave() or self.r < 0.5
|
||||||
|
end
|
||||||
|
|
||||||
|
function droplet:draw()
|
||||||
|
circfill(self.x, self.y, self.r, 0x1003)
|
||||||
|
local r2 = self.r >> 1
|
||||||
|
pset(self.x+r2, self.y-r2, 0x100F)
|
||||||
|
end
|
||||||
|
|
||||||
-->8
|
-->8
|
||||||
-- game sequencer
|
-- game sequencer
|
||||||
|
Loading…
Reference in New Issue
Block a user