dolphin idle state

This commit is contained in:
Kistaro Windrider 2024-02-03 18:21:57 -08:00
parent d49da29c2d
commit e6c48029a4
Signed by: kistaro
SSH Key Fingerprint: SHA256:TBE2ynfmJqsAf0CP6gsflA0q5X5wD5fVKWPsZ7eVUg8

View File

@ -406,6 +406,7 @@ function newtitle()
},
bg.new{c=1},
box,
toyphin.new(),
{
x=128,
update=function(self)
@ -439,6 +440,10 @@ mknew(arcade_level, function(x)
x.fx = linked_list.new()
end)
-- global
function wave()
return 2.5 * sin(t()>>1)
end
-- dolphin sprite states:
-- spr args
@ -452,60 +457,124 @@ end)
-- single sprite is bigger on
-- the sprite sheet but easier
-- to render.
phinstate_nrm = {}
phin_nrm_pal = {
[2]=2,
[7]=7,
[12]=12,
}
phin_uw_pal = {
[2]=130,
[7]=135,
[12]=140,
}
phinstate_jump_full = {}
phinstate_jump_wane = {}
phinstate_crest = {}
phinstate_fall_wax = {}
phinstate_fall_full = {}
phinstate_dive_full = {}
phinstate_dive_wane = {}
phinstate_return = {}
phinstate_rise_wax = {}
phinstate_rise_full = {}
phinstate_nrm = {
s={4, 36, 4, 9},
ws=3,
hs=2,
p=phin_nrm_pal,
floaty=true,
}
phinstate_jump_full = {
s={7},
ws=2,
hs=3,
p=phin_nrm_pal,
}
phinstate_jump_wane = {
s={1},
ws=3,
hs=3,
p=phin_nrm_pal,
}
phinstate_crest = {
s={4},
ws=3,
hs=2,
p=phin_nrm_pal,
}
phinstate_fall_wax = phinstate_jump_wane
phinstate_fall_full = phinstate_jump_full
phinstate_dive_full = {
s={7},
ws=2,
hs=3,
p=phin_uw_pal,
}
phinstate_dive_wane = {
s={1},
ws=3,
hs=3,
p=phin_uw_pal,
}
phinstate_return = {
s={4},
ws=3,
hs=2,
p=phin_uw_pal,
}
phinstate_rise_wax = phinstate_dive_wane
phinstate_rise_full = phinstate_dive_full
toyphin = {
x=3,
x=-24,
y=56,
state=phinstate_nrm,
dy=0,
state=phinstate_nrm
}
mknew(toyphin)
function toyphin:update()
-- entry mode?
if not self.entered then
self.x += 1
self.entered = self.x >= 4
end
-- TODO: switch states, do physics, etc.
-- prepare for collision detection
self.w=self.state.ws*8
self.h=self.state.hs*8
end
function toyphin:draw()
local st, y = self.state, self.y
if (st.floaty) y += wave()
spr(st.s[1+(((t()<<1)&0x0.FFFF*#st.s)&0x7FFF)], self.x, y, self.state.ws, self.state.hs)
end
-->8
-- game sequencer
__gfx__
00000000777777777777777777777777777777777777777777777777777777777777777700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700000000000000700000000000000000000000000000000000000000000000000000000
00700700700000000000000000000007700000000000000000000007700000000000000700000000000000000000000000000000000000000000000000000000
00077000700000000000000000000007700000000000000000000007700000cccc00000700000000000000000000000000000000000000000000000000000000
0007700070000000000000000000000770000000000000000000000770000000c000000700000000000000000000000000000000000000000000000000000000
00700700700000000000000000000007700000000000000000000007700000cccc00000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700cc000c00c00cc00c0c007700000000000000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700c0c0c0c0c00c0c0c0c0077000000c0000000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700c0c0c0c0c00cc00ccc007700000c0c000000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700ccc00c00cc0c000c0c007700000cccc00000700000000000000000000000000000000000000000000000000000000
00000000700cc000c00c00cc00c0c007700000000000000000000007700000000000000700000000000000000000000000000000000000000000000000000000
00000000700c0c0c0c0c00c0c0c0c007700000000000000000000007700000000c00000700000000000000000000000000000000000000000000000000000000
00000000700c0c0c0c0c00cc00ccc007700000000000000000000007700000cccc00000700000000000000000000000000000000000000000000000000000000
00000000700ccc00c00cc0c000c0c007700000000000000000000007700000000000000700000000000000000000000000000000000000000000000000000000
000000007000000000000000000000077000000000000000000000077000000cc000000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007777777777777777777777777700000c00c00000700000000000000000000000000000000000000000000000000000000
000000007000000000000000000000070000000000000000000000007000000cc000000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007000000000000000000000000700000000000000700000000000000000000000000000000000000000000000000000000
000000007000000000000000000000070000000000000000000000007000000ccc00000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007000000000000000000000000700000c00c00000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007000000000000000000000000700000cccc00000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007000000000000000000000000700000000000000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007000000000000000000000000700000000000000700000000000000000000000000000000000000000000000000000000
00000000777777777777777777777777000000000000000000000000777777777777777700000000000000000000000000000000000000000000000000000000
00000000777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700000000000000770000000000000000000000700000000000000000000000000000000
00700700700000000000000000000007700000000000000000000007700002222220000770000000000000000000000700000000000000000000000000000000
00077000700000000000000000000007700000000000000000000007700002cccc20000770000000000000000000000700000000000000000000000000000000
0007700070000000000000000000000770000000000000000000000770000222c220000770222200000000000000000700000000000000000000000000000000
00700700700000000000000000000007702222022222222222222207700002cccc200007702cc222222222222222220700000000000000000000000000000000
00000000700000000000000000000007702cc222c22c22cc22c2c2077000022222200007702c2c22c22c22cc22c2c20700000000000000000000000000000000
00000000700000000000000000000007702c2c2c2c2c22c2c2c2c2077000022c22000007702c2c2c2c2c22c2c2c2c20700000000000000000000000000000000
00000000700000000000000000000007702c2c2c2c2c22cc22ccc207700002c2c2200007702ccc2c2c2c22cc22ccc20700000000000000000000000000000000
00000000702222022222222222222207702ccc22c22cc2c222c2c207700002cccc20000770222222c22cc2c222c2c20700000000000000000000000000000000
00000000702cc222c22c22cc22c2c207702222222222222202222207700002222220000770000022222222220222220700000000000000000000000000000000
00000000702c2c2c2c2c22c2c2c2c207700000000000000000000007700002222c20000770000000000000000000000700000000000000000000000000000000
00000000702c2c2c2c2c22cc22ccc207700000000000000000000007700002cccc20000770000000000000000000000700000000000000000000000000000000
00000000702ccc22c22cc2c222c2c207700000000000000000000007700002222220000770000000000000000000000700000000000000000000000000000000
000000007022222222222222022222077000000000000000000000077000022cc220000770000000000000000000000700000000000000000000000000000000
00000000700000000000000000000007777777777777777777777777700002c22c20000777777777777777777777777700000000000000000000000000000000
000000007000000000000000000000077777777777777777777777777000022cc220000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700000222220000700000000000000000000000000000000000000000000000000000000
000000007000000000000000000000077000000000000000000000077000022ccc20000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700002c22c20000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700002cccc20000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000022222222222222207700002222220000700000000000000000000000000000000000000000000000000000000
0000000070000000000000000000000770222222c22c22cc22c2c207700000000000000700000000000000000000000000000000000000000000000000000000
00000000777777777777777777777777702cc22c2c2c22c2c2c2c207777777777777777700000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000702c2c2c2c2c22cc22ccc207000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000702c2c22c22cc2c222c2c207000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000702ccc222222222202222207000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000702222200000000000000007000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000700000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000700000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000700000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000777777777777777777777777000000000000000000000000000000000000000000000000000000000000000000000000