From e6c48029a46e4e912c350c60b85b5732a38ff573 Mon Sep 17 00:00:00 2001 From: Kistaro Windrider Date: Sat, 3 Feb 2024 18:21:57 -0800 Subject: [PATCH] dolphin idle state --- vacation.p8 | 161 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 115 insertions(+), 46 deletions(-) diff --git a/vacation.p8 b/vacation.p8 index 82872f7..7dca67f 100644 --- a/vacation.p8 +++ b/vacation.p8 @@ -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