121 lines
4.0 KiB
Plaintext
121 lines
4.0 KiB
Plaintext
|
pico-8 cartridge // http://www.pico-8.com
|
||
|
version 41
|
||
|
__lua__
|
||
|
--
|
||
|
function _init()
|
||
|
--start_scene("title")
|
||
|
start_scene("level")
|
||
|
end
|
||
|
|
||
|
function _update()
|
||
|
if _scene and _scene.update then
|
||
|
_scene.update()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function _draw()
|
||
|
if _scene and _scene.draw then
|
||
|
_scene.draw()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function start_scene(name)
|
||
|
_scene = _scenes[name]
|
||
|
_scene_start = time()
|
||
|
if _scene.start then
|
||
|
_scene.start()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function scene_time()
|
||
|
return time() - _scene_start
|
||
|
end
|
||
|
|
||
|
_scene = nil
|
||
|
_scenes = {}
|
||
|
_scene_start = 0
|
||
|
|
||
|
function draw_title()
|
||
|
cls()
|
||
|
print("title " .. scene_time())
|
||
|
end
|
||
|
|
||
|
function update_title()
|
||
|
if scene_time() > 2 then
|
||
|
start_scene("menu")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function draw_menu()
|
||
|
cls()
|
||
|
print("menu " .. scene_time())
|
||
|
end
|
||
|
|
||
|
function update_menu()
|
||
|
end
|
||
|
|
||
|
|
||
|
function start_level()
|
||
|
walls = {}
|
||
|
walls[30]={{0,10}, {25,30}, {38,44}}
|
||
|
walls[40]={{5,15}, {20,25}, {40,50}}
|
||
|
walls[50]={{5,10}, {20,30}, {45,55}}
|
||
|
walls[60]={{5,15}, {20,25}, {40,50}}
|
||
|
walls[70]={{0,10}, {20,30}, {44,55}}
|
||
|
walls[80]={{5,15}, {20,25}, {40,50}}
|
||
|
walls[90]={{0,10}, {25,30}, {38,44}}
|
||
|
end
|
||
|
|
||
|
function draw_side(right)
|
||
|
for y, platforms in pairs(walls) do
|
||
|
for plat in all(platforms) do
|
||
|
if right then
|
||
|
line(128-plat[1], y, 128-plat[2], y, DARK)
|
||
|
else
|
||
|
line(plat[1], y, plat[2], y, LIGHT)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function draw_level()
|
||
|
--palt(0, false)
|
||
|
spr_frame = 1
|
||
|
cls(0)
|
||
|
draw_side(false)
|
||
|
spr(spr_frame, 56, 100, 1, 2, false)
|
||
|
rectfill(64, 0, 128, 128, LIGHT)
|
||
|
draw_side(true)
|
||
|
pal({[LIGHT]=DARK})
|
||
|
spr(spr_frame, 64, 100, 1, 2, true)
|
||
|
pal()
|
||
|
end
|
||
|
|
||
|
function update_level()
|
||
|
end
|
||
|
|
||
|
LIGHT = 6
|
||
|
DARK = 0
|
||
|
_scenes.title = {start=nil, draw=draw_title, update=update_title}
|
||
|
_scenes.menu = {start=nil, draw=draw_menu, update=nil}
|
||
|
_scenes.level = {start=start_level, draw=draw_level, update=update_level}
|
||
|
|
||
|
|
||
|
__gfx__
|
||
|
00000000666660006666600006666600066666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000666660006666600006666600066666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00700700666660006666600006666600066666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00077000666660006666600006666600066666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00077000666660006666600006666600066666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00700700060000060600000600060000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000060000060600000600060000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000066666660666666606066660066666600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000066000000660000000666000000660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000066000000660000000066000000660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000066000000660000000066000000660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000066000000660000000066000000660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000066000000660000000066000000660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000066000000660000000066000000660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000606600006606000000660600006606000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||
|
00000000600600006006000000600600006006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|