forked from pyrex/chameleonic
main #21
116
chameleonic.p8
116
chameleonic.p8
@ -7,13 +7,14 @@ real_modules={}
|
||||
|
||||
function _init()
|
||||
-- printh("restarting")
|
||||
_doall("init")
|
||||
_doall"init"
|
||||
end
|
||||
|
||||
function _update60()
|
||||
_doall("update") end
|
||||
_doall"update" end
|
||||
function _draw()
|
||||
_doall("draw") end
|
||||
_doall"draw"
|
||||
end
|
||||
|
||||
function music_on()
|
||||
if (stat(54) ~= 0) music(0)
|
||||
@ -252,9 +253,9 @@ end
|
||||
title={}
|
||||
add(modules,title)
|
||||
|
||||
lvlshimmer = {4,9,10,10,9}
|
||||
lvlshimmer = split"4,9,10,10,9"
|
||||
function title:draw()
|
||||
cls(0)
|
||||
cls"0"
|
||||
-- this is right for 72x32
|
||||
spr(96,28,56,9,2)
|
||||
print("pyrex",32,73,7)
|
||||
@ -276,7 +277,7 @@ end
|
||||
function title:update()
|
||||
if (btnp"0") start_level-=1
|
||||
if (btnp"1") start_level+=1
|
||||
start_level%=(max_level+1)
|
||||
start_level%=max_level+1
|
||||
if btn"3" and not wiped then
|
||||
wrongbleep:bleep()
|
||||
if (wrongbleep:adequately_warned()) then
|
||||
@ -323,10 +324,25 @@ function level:advance()
|
||||
end
|
||||
|
||||
normpal = {[1]=0,[8]=0,[14]=0}
|
||||
ixes=split"5,3,15,10,13,4,9"
|
||||
easy=split"1,131,6,129,6,141,12"
|
||||
moderate=split"3,139,15,5,6,4,9"
|
||||
hard=split"134,135,142,134,6,142,140"
|
||||
brutal=split"8,137,9,130,6,13,138"
|
||||
|
||||
function level:draw3()
|
||||
local p=easy
|
||||
if (self.ix>=6) p=moderate
|
||||
if (self.ix>=13) p=hard
|
||||
if (self.ix>=24) p=brutal
|
||||
for i=1,7 do
|
||||
pal(ixes[i],p[i],1)
|
||||
end
|
||||
end
|
||||
|
||||
function level:draw()
|
||||
cls(5)
|
||||
fillp()
|
||||
pal(normpal)
|
||||
cls"10"
|
||||
map(
|
||||
self.bigx*16,self.bigy*16,
|
||||
0,0,16,16,
|
||||
@ -668,6 +684,47 @@ function level_tug_crate(t)
|
||||
self._crates[_mix{mx1,my1}]=existing
|
||||
end
|
||||
|
||||
-->8
|
||||
-- particles
|
||||
particles={}
|
||||
add(real_modules,particles)
|
||||
function particles:init()
|
||||
self.a={}
|
||||
end
|
||||
function particles:update()
|
||||
local a2={}
|
||||
for i in all(particles.a) do
|
||||
i.t+=1
|
||||
i[1]+=i.dx
|
||||
i[2]+=i.dy
|
||||
i.dy+=i.ddy
|
||||
if (i.t<i.mt) add(a2,i)
|
||||
end
|
||||
particles.a=a2
|
||||
end
|
||||
|
||||
function particles:move(x,y,dx,dy)
|
||||
for i=0,1,0.25 do
|
||||
local px=(x+dx*i)*8+2
|
||||
local py=(y+dy*i)*8+4
|
||||
px+=rnd"4"
|
||||
py+=rnd"6"
|
||||
add(self.a,{
|
||||
px,py,6,
|
||||
dx=rnd()-0.5,
|
||||
dy=-rnd(0.5),
|
||||
ddy=0.02,
|
||||
t=-rnd"4",
|
||||
mt=4+rnd"4"
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
function particles:draw()
|
||||
for i in all(particles.a) do
|
||||
if (i.t>0) pset(unpack(i))
|
||||
end
|
||||
end
|
||||
-->8
|
||||
--player handling
|
||||
player={}
|
||||
@ -737,6 +794,7 @@ function player:update()
|
||||
local t=f[#f]
|
||||
t.x=x+dx
|
||||
t.y=y+dy
|
||||
particles:move(x,y,dx,dy)
|
||||
return
|
||||
end
|
||||
wrongbleep:bleep()
|
||||
@ -859,7 +917,7 @@ function player:draw()
|
||||
-- vanish colors
|
||||
local vanish=split"13,15,14,5,4,12,2,3,9,10"
|
||||
for i,ilc in ipairs(vanish) do
|
||||
if (vanish_level>i/#vanish) pal(ilc,5)
|
||||
if (vanish_level>i/#vanish) pal(ilc,10)
|
||||
end
|
||||
|
||||
if (self.fall_frame>3) local zc=@0x5f00&0xf0 for i=0x5f00,0x5f0c,4 do poke4(i,0x0505.0505) end poke(0x5f00,zc|0x01)
|
||||
@ -1892,14 +1950,14 @@ __gfx__
|
||||
002222200000220000222220efe33eeeeeeeeeeeeee33efeeee33eeeeee33eeeff1111ffff111111ff1ff1ff111111ffdddddddd111111110cccccc033333333
|
||||
000222c002222c0000022200efeeee555e555e55e5eeeefee5eeeeffffeeee5effffffffffffffffff1ff1ffffffffffdddddddd111111110cc00cc033300333
|
||||
00000cc00000cc0000000cc0efe33e5eeeeeeeeee5e33efee5e33efeefe33e5e1ffffff11fffffffff1ff1fffffffff1dddddddd111111110000000033300333
|
||||
0000ff000000000000000000efe33e5e11111111e5e33efee5e33efeefe33e5eff1ff1ffffffffffffffffffffffffff88888888555555555555555588888888
|
||||
000f00f0000000000aa00aa0efe33eee11ffff11eee33efeeee33effffe33e5eff1ff1ffffffffffffffffffffffffff88888888558855885588558888888888
|
||||
0000ff000000000000000000efe33e5e11111111e5e33efee5e33efeefe33e5eff1ff1ffffffffffffffffffffffffff88888888aaaaaaaaaaaaaaaa88888888
|
||||
000f00f0000000000aa00aa0efe33eee11ffff11eee33efeeee33effffe33e5eff1ff1ffffffffffffffffffffffffff88888888aa88aa88aa88aa8888888888
|
||||
00d0000f000000000aaaaaa0efe33e5e1ff11ff1e5e33efee5e33eeeeee33eeeff1ff1fffff11111ffffffff11111fff88888888888888888888888888888888
|
||||
00d0d00f00c040500aaaaaa0efeeee5e1f1111f1e5eeeefee5e333e333333e5eff1ff1fffff1ffffff1111ffffff1fff88888888888888888888888888888888
|
||||
00dd00ee00c4455000999900efe33e5e1f1111f1e5e33efee5e333e333333e5eff1111fffff1ffffff1ff1ffffff1fff88888888888888888888888888888888
|
||||
00000ee00c44455500aaaa00efe33eee1ff11ff1eee33efeeeeeeeeeeeeeee5efffffffffff11111ff1ff1ff11111fff88888888888888888888888888888888
|
||||
00eeee000c004005000aa000efe33e5e11ffff11e5e33efee5555e555e555e5effffffffffffffffff1ff1ffffffffff88888888888888888855885588558855
|
||||
eeee0000cc04405500444400efeeee5e11111111e5eeeefeeeeeeeeeeeeeeeeeffffffffffffffffff1ff1ffffffffff88888888888888885555555555555555
|
||||
00eeee000c004005000aa000efe33e5e11ffff11e5e33efee5555e555e555e5effffffffffffffffff1ff1ffffffffff888888888888888888aa88aa88aa88aa
|
||||
eeee0000cc04405500444400efeeee5e11111111e5eeeefeeeeeeeeeeeeeeeeeffffffffffffffffff1ff1ffffffffff8888888888888888aaaaaaaaaaaaaaaa
|
||||
00000000000a900000000000efe33eeeeeeeeeeeeee33efeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000aaaaaaa910000000000efe33e5555e555e555e33efeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
0000aaaaaa1a911000a00200efe33eeeeeeeeeeeeee33efeff1ff1ff11111111ff1111ff00000000000000000000000000000000000000000000000000000000
|
||||
@ -1949,37 +2007,37 @@ eeee0000cc04405500444400efeeee5e11111111e5eeeefeeeeeeeeeeeeeeeeeffffffffffffffff
|
||||
00880888880880888880880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000888888800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0d0d0d0d0d0d030404050d0d0d0d0d0d0
|
||||
00000000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d010d0d0d0d0d0d0d0d0d0d0d0d0d0d030404050d0d0d0d0d0d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0304040404050316400510041d0d0d0d0
|
||||
00000000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0410041d0d0d0d0d0d0d0304040404050316400510041d0d0d0d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c000c0c0c0c0c0c0c0c03174000000f3000000000030404050d0
|
||||
00000000000000000000000000000000c0c0c0c000000000c0c0c0c0c0c0c0c0d0d0d0d0d0d0410041d0d0d0d0d0d0d0317400000051000000000030404050d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0310000e1e1000042e1520000000051d0
|
||||
00000000000000000000000000000000c0c0c0c000c0c000c0c0c0c0c0c0c0c0d0d0d030405030003040404050d0d0d0310000e1e1000042e1520000000051d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0100000000451304000500031000051d0
|
||||
00000000000000000000000000000000c0c0c0c000c0c000c0c0c0c0c0c0c0c0d0d0d031005131000000000051d0d0d0100000000451304000500031000051d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c00000000000c0c0c0c0c0c031000400000000000051003242d152d0
|
||||
00000000000000000000000000000000c0c0c0c000000000f1c0c0c0c0c0c0c0d0d0d03100d1d100d1d1820051d0d0d031000400000000000051003242d152d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c000c1c1c000c0c0c0c0c0c031000000005131000051003040f14050
|
||||
00000000000000000000000000000000100000000000040000e3000000c0c0c0d0d0d0d300f1f10014c1f30051d0d0d031000000005131000051003040f14050
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0d300c10014c1f300c0c0c0c0c0c032424242425232424252000000000051
|
||||
00000000000000000000000000000000c0c0c0c0c00000000000000000c0c0c0d0d0d0310051310082f1820051d0d0d032424242425232424252000000000051
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c000c000c1c1c000c0c0c0c0c0c030404040503040404050003100000051
|
||||
00000000000000000000000000000000c0c0c000c1000000d100000400c0c0c0d0d0d031005131000000000051d0d0d030404040503040404050003100000051
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c000c000c0c1c000c0c0c0c0c0c03100000051d300000051003242d14252
|
||||
00000000000000000000000000000000c0c0c000c0c1c100c100c1c100c0c0c0d0d0d032005232424200d14252d0d0d03100000051d300000051003242d14252
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c000c00000000000c0c0c0c0c0c031000000d1d100440051003040f150d0
|
||||
00000000000000000000000000000000c0c0c000c000c100c100c100c0c0c0c0d0d0d030005030404000c140504141d031000000d1d100440051003040f150d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c000c0c0c000c0c0c0c0c0c0c0c031000000f1f1001400510000000051d0
|
||||
00000000000000000000000000000000c0c0c000c000c100c100c100c0c0c0c0d0d0d0310000000000a4f1000000002131000000f1f1001400510000000051d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c00000000084c0c0c0c0c0c0c0c0310000005131000000510031000051d0
|
||||
00000000000000000000000000000000c0c0c000c000f1e1f1e1f100c0c0c0c0d0d0d0324252324242424242524141d0310000005131000000510031000051d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0324242005232e14200521432424252d0
|
||||
00000000000000000000000000000000c0c0c000c000000000000000c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0324242005232e14200521432424252d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0d0d0d0000000004100000041d0d0d0d0
|
||||
00000000000000000000000000000000c0c0c000c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0000000004100000041d0d0d0d0
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c021c0c0c0c0c0c0c0c0d0d0d0d0d0d021d0d0d0d0d0d0d0d0d0
|
||||
00000000000000000000000000000000c0c0c021c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d021d0d0d0d0d0d0d0d0d0
|
||||
d0d0d0d0d0d0d0d0e3d0d0d0d0d0d0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
|
||||
d0d0d0d0d0d04100000041d0d0d0d0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
|
Loading…
Reference in New Issue
Block a user