-- title: Proto Bots
-- author: Silas
-- desc: Defeat the proto bots as you survive.
-- site: website link
-- license:
-- version: 0.1
-- script: lua
music(0)
function GetDistance( x1, y1, x2, y2 )
return math.sqrt( ( x2 - x1 )^2 + ( y2 - y1 )^2 )
end
x = 0
y = 80
s = 2
pd = 1
px = -200
py = -200
pSpr = 7
enemies={
{ x=100,y=50,mapx=0,mapy=0 },
{ x=100,y=100,mapx=30,mapy=0 },
{ x=100,y=75,mapx=30,mapy=0 },
{ x=100,y=50,mapx=30,mapy=0 },
{ x=100,y=60,mapx=60,mapy=0 },
{ x=100,y=50,mapx=60,mapy=0 },
{ x=100,y=82,mapx=60,mapy=0 },
{ x=100,y=100,mapx=60,mapy=0 },
{ x=100,y=75,mapx=60,mapy=0 },
{ x=100,y=100,mapx=90,mapy=0 },
{ x=100,y=55,mapx=90,mapy=0 },
{ x=100,y=92,mapx=90,mapy=0 },
{ x=100,y=75,mapx=90,mapy=0 },
{ x=100,y=81,mapx=90,mapy=0 },
{ x=100,y=97,mapx=90,mapy=0 },
{ x=100,y=49,mapx=90,mapy=0 },
}
leveldata={
{ kills=1 },
{ kills=3 },
{ kills=5 },
{ kills=7 },
{ kills=5 },
{ kills=5 },
{ kills=7 },
{ KILLS=7 }
}
mapx=0
mapy=0
function TIC()
map(mapx,mapy)
spr(s,x,y,0)
spr(pSpr,px,py,0)
spr(7,px,py,0)
levelname = math.floor(mapx / 30 + 1)
print( "Level " .. levelname, 5, 5 )
print("Need " .. leveldata[levelname].kills .. " kills", 5, 20 )
if leveldata[levelname] ~= nil then
if leveldata[levelname].kills == 0 then
mapx=mapx+30
end
for id, en in pairs( enemies ) do
if en.mapx == mapx and en.mapy == mapy then
-- This enemy is on the screen
spr(8,en.x,en.y,0)
-- Enemy vibrate:
en.x=en.x+math.random(-1,1)
en.y=en.y+math.random(-1,1)
-- Enemy hit by bullet?
dist = GetDistance(px,py,en.x,en.y)
if dist <= 8 then
-- Collision!
en.x = -200
leveldata[levelname].kills = leveldata[levelname].kills - 1
end
end
end
if btn(0) then y=y-1 end -- UP
if btn(1) then y=y+1 end -- DOWN
if btn(2) then x=x-1
s=6
end -- LEFT
if btn(3) then x=x+1
s=4
end -- RIGHT
if btn(5) then -- "x" button -- shoot
pSpr = 7
pd=3
px=x
py=y
elseif btn(4) then
pSpr = 7
pd=-3
px=x
py=y
end
px = px + pd
end
end
--
-- 000:eeeeeeeeeddddddeeeddddeeeddeeddeeddeeddeeeddddeeeddddddeeeeeeeee
-- 001:6666666666666666666666666666666666666666666666666666666666666666
-- 002:dddddddddd444dddd444ddddd44dddddd44dddddd444dddddd444ddddddddddd
-- 003:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 004:0044400004444400d44cdd00d44cdd00d444eee0d444e400044044000dd0dd00
-- 005:dddddddddddddddddddddddddddddddddddddddd6d6d6d6d6666666666666666
-- 006:000444000044444000ddc44d00ddc44d0eee444d004e444d0044044000dd0dd0
-- 007:0000000000000000000000000000000000004000000000000000000000000000
-- 008:00000000000000000000000000ddddd00022d0000dddddd0d0d0d0d0d0d0d0dd
-- 009:c4c4c4c4443333ccc3c334344334c33cc33c433443433c3ccc3333444c4c4c4c
-- 010:c2c2c2c2221111ccc1c112122112c11cc11c211221211c1ccc1111222c2c2c2c
-- 011:c9c9c9c9998888ccc8c889899889c88cc88c988998988c8ccc8888999c9c9c9c
-- 012:c6c6c6c6667777ccc7c776766776c77cc77c677667677c7ccc7777666c6c6c6c
-- 013:8888888888888888888888888888888888888888888888888888888888888888
-- 016:66666666666666666666666d66666ddd66666daa6666ddaa666daaaa66daacca
-- 017:6666666666dddddddddaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-- 018:66666666ddd66666aadddd66aaaaadddaaaaaaadaaaaaaadaaaacaaaaaaaaaaa
-- 019:6666666666666666666666666666666666666666d6666666ad666666aad66666
-- 032:66daccaa6ddccaaa6dcccaaa6dcaaaaa6dcaaaca6daaaaaa6daaaaaa6daaaaaa
-- 033:aaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaa
-- 034:acaaaaaaaaccaaacaaacaaaaaaaccaaaacaacaaaaaaacaaaaaaccaaaaaaccaaa
-- 035:aad66666cadd6666caad6666caad6666ccad6666acad6666ccad6666caad6666
-- 048:6daaacaa6daaacaa6ddaacca6edaacca6edaaccc6eedaaac67eedaaa677eeaaa
-- 049:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaacc
-- 050:aaaccaacacaccaaaaaaccaacaaaccaaaaaaccaaaaaaccaaaacccaaadcccaaaad
-- 051:caad6666aaad6666aadd6666aade6666aade6666adee6666dee76666ee776666
-- 064:6677edaa6667eeed666777ee6666677766666666666666666666666666666666
-- 065:aaaaaaaadddaaaaaeedddddd7eeeeeee77eeeeee677777776666666666666666
-- 066:aaaaadddaaddddeedddeeee7eeee7777eee77666777766666666666666666666
-- 067:e7766666e7666666776666666666666666666666666666666666666666666666
--
--
--
-- 000:00000000ffffffff00000000ffffffff
-- 001:0123456789abcdeffedcba9876543210
-- 002:0123456789abcdef0123456789abcdef
--
--
-- 000:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304000000000
--
--
-- 000:000000b00006c00000900000a0000a00000090000080000a000000b00008100000400006600000a0000880000050000410000090000a100000000000a0000c50000050000a50000610000070000e900000a0000a000000a0000ca0000880000460000870000a800004100000100000500004100000100000900006000000100000b00000b0000880000a900004800006100000100000b0000aa00008000000d00006100000c00008000000c00008d00006100000100000c0000aa00006b00000
--
--
-- 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060
--
--
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
--