PICO-8 projects
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

320 lines
23 KiB

pico-8 cartridge // http://www.pico-8.com
version 37
__lua__
-- racing
-- by djib
function _init()
car:init(game)
road:init(game,car)
--music(0,-1,-1,false)
end
function _update()
--if time()<1500 then return end
game:update()
car:update()
road:update()
end
function _draw()
cls(6)
road:draw()
car:draw()
end
-->8
-- car
car={
x=128/2-8,
y=100,
speed=0
}
function car:init(game)
self.game=game
end
function car:update()
if btnp() and self.speed<4 then
self.speed=self.speed+1
end
if btnp() and self.speed>0 then
self.speed=self.speed-1
end
if btn() then self.x=self.x-1 end
if btn() then self.x=self.x+1 end
sfx(-1)
sfx(self.speed)
end
function car:draw()
tick=0
if self.speed>0 then
tick=self.game.t\(2^(4-self.speed))%4
end
palt(0x0100)
spr(1+tick*2,self.x,self.y,2,2)
print("speed:"..car.speed,5,5,5)
end
-->8
-- road
road={
scroll=0,
odd=0,
width=7
}
function road:init(game,car)
self.game=game
self.car=car
self.offset=16/2-self.width\2-1
-- 16 line and the next two
for i=1,18 do
self[i]=self.offset
end
end
function road:update()
if self.car.speed>0 then
newscroll=self.scroll+self.car.speed
self.scroll=newscroll%8
if newscroll>=8 then
offset=flr(rnd(3)-1)
self.offset=self.offset+offset
add(self,self.offset,1)
deli(self,#self)
self.odd=(self.odd+1)%2
end
end
end
function road:draw()
for x=0,16-1 do
for y=0,17-1 do
linenb=((self.odd+y)%2)*2
sprite=nil
if self[y+1]>self[y+2] then
if x<self[y+1] then
sprite=49
elseif x==self[y+1] then
sprite=37
elseif x==self[y+1]+road.width-1 then
sprite=54
elseif x>self[y+1]+road.width-1 then
sprite=49
else
end
elseif self[y+1]<self[y+2] then
if x<self[y+1]+1 then
sprite=49
elseif x==self[y+1]+1 then
sprite=53
elseif x==self[y+1]+road.width then
sprite=38
elseif x>self[y+1]+road.width then
sprite=49
else
end
else
if x<self[y+1] then
sprite=49
elseif x==self[y+1] then
sprite=33
elseif x==self[y+1]+road.width then
sprite=34
elseif x>self[y+1]+road.width then
sprite=49
else
end
end
if sprite then
palt()
spr(sprite+linenb,x*8,y*8+self.scroll-8)
end
end
end
end
-->8
-- game
game={
t=0
}
function game:update()
self.t=self.t+1
end
__gfx__
00000000777777711777777777777771177777777777777117777777777777711777777700000000000000000000000000000000000000000000000000000000
000000007777dddddddd77777777dddddddd77777777dddddddd77777777dddddddd777700000000000000000000000000000000000000000000000000000000
007007007770077dd77007777775577dd77557777775577dd77557777775577dd775577700000000000000000000000000000000000000000000000000000000
000770007775511dd11557777770011dd11007777775511dd11557777775511dd115577700000000000000000000000000000000000000000000000000000000
00077000777551dddd155777777551dddd155777777001dddd100777777551dddd15577700000000000000000000000000000000000000000000000000000000
00700700777557d11d755777777557d11d755777777557d11d755777777007d11d70077700000000000000000000000000000000000000000000000000000000
0000000077777dddddd7777777777dddddd7777777777dddddd7777777777dddddd7777700000000000000000000000000000000000000000000000000000000
000000007777cdd00ddc77777777cdd00ddc77777777cdd00ddc77777777cdd00ddc777700000000000000000000000000000000000000000000000000000000
000000007777cdd99ddc77777777cdd99ddc77777777cdd99ddc77777777cdd99ddc777700000000000000000000000000000000000000000000000000000000
000000007777cdd99ddc77777777cdd99ddc77777777cdd99ddc77777777cdd99ddc777700000000000000000000000000000000000000000000000000000000
0000000077777d1111d7777777777d1111d7777777777d1111d7777777777d1111d7777700000000000000000000000000000000000000000000000000000000
00000000777007d11d700777777557d11d755777777557d11d755777777557d11d75577700000000000000000000000000000000000000000000000000000000
00000000777551dddd155777777001dddd100777777551dddd155777777551dddd15577700000000000000000000000000000000000000000000000000000000
00000000777511111111577777751111111157777770111111110777777511111111577700000000000000000000000000000000000000000000000000000000
00000000777511111111577777751111111157777775111111115777777011111111077700000000000000000000000000000000000000000000000000000000
00000000777711111111777777771111111177777777111111117777777711111111777700000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb3333337777333333bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb3333337777333333bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb33333377773333337700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb33333377773333337700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb0000000033333333000000007700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb0000000033333333000000007700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
__label__
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888eeeeee888888888888888888888888888888888888888888888888888888888888888888888888ff8ff8888228822888222822888888822888888228888
8888ee888ee88888888888888888888888888888888888888888888888888888888888888888888888ff888ff888222222888222822888882282888888222888
888eee8e8ee88888e88888888888888888888888888888888888888888888888888888888888888888ff888ff888282282888222888888228882888888288888
888eee8e8ee8888eee8888888888888888888888888888888888888888888888888888888888888888ff888ff888222222888888222888228882888822288888
888eee8e8ee88888e88888888888888888888888888888888888888888888888888888888888888888ff888ff888822228888228222888882282888222288888
888eee888ee888888888888888888888888888888888888888888888888888888888888888888888888ff8ff8888828828888228222888888822888222888888
888eeeeeeee888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1111ee1eee1eee1eee111116161111111111661666161116661771161611111cc1117711111cc11ccc11111eee1e1e1eee1ee11111
11111111111111111e111e111e111e1111e11e111111161617771777161116111611161117111616117111c11117117111c11c1c111111e11e1e1e111e1e1111
11111111111111111ee11e111eee1ee111e11ee11111116111111111166616611611166117111666177711c11117177711c11c1c111111e11eee1ee11e1e1111
11111111111111111e111e11111e1e1111e11e111111161617771777111616111611161117111116117111c11117117111c11c1c111111e11e1e1e111e1e1111
11111111111111111eee1eee1ee11eee1eee1e11111116161111111116611666166616111771166611111ccc117711111ccc1ccc111111e11e1e1eee1e1e1111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111bb1bbb1bbb11711ccc1c1c11111611166616611666166116661111161617171ccc1111161617171ccc111111661666161116661111
111111111111111111111b111b1b1b1b1711111c1c1c11711611116116161611161616161111161611711c1c1111161611711c1c117116111611161116111111
111111111111111111111bbb1bbb1bb1171111cc1ccc17771611116116161661161616611111116117771ccc1111166617771ccc177716661661161116611111
11111111111111111111111b1b111b1b1711111c111c11711611116116161611161616161171161611711c1c1171111611711c1c117111161611161116111111
111111111111111111111bb11b111b1b11711ccc111c11111666166616161666161616661711161617171ccc1711166617171ccc111116611666166616111171
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1111ee1eee1eee1eee11111616171111661666161116661771161611111cc1117711111cc11ccc11111eee1e1e1eee1ee111111111
11111111111111111e111e111e111e1111e11e11111116161171161116111611161117111616117111c11117117111c11c1c111111e11e1e1e111e1e11111111
11111111111111111ee11e111eee1ee111e11ee1111111611117166616611611166117111666177711c11117177711c11c1c111111e11eee1ee11e1e11111111
11111111111111111e111e11111e1e1111e11e11111116161171111616111611161117111116117111c11117117111c11c1c111111e11e1e1e111e1e11111111
11111111111111111eee1eee1ee11eee1eee1e1111111616171116611666166616111771166611111ccc117711111ccc1ccc111111e11e1e1eee1e1e11111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111bb1bbb1bbb11711c1c1ccc11111611166616611666166116661111161617171ccc1111161617171ccc111111661666161116661111
111111111111111111111b111b1b1b1b17111c1c1c1c11711611116116161611161616161111161611711c1c1111161611711c1c117116111611161116111111
111111111111111111111bbb1bbb1bb117111ccc1ccc17771611116116161661161616611111116117771ccc1111166617771ccc177716661661161116611111
11111111111111111111111b1b111b1b1711111c111c11711611116116161611161616161171161611711c1c1171111611711c1c117111161611161116111111
111111111111111111111bb11b111b1b1171111c111c11111666166616161666161616661711161617171ccc1711166617171ccc111116611666166616111171
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1111ee1eee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e111e111e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111ee11e111eee1ee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e11111e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1eee1ee11eee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1ee11ee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111ee11e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1e1eee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111eee1ee11ee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111ee11e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111eee1e1e1eee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111eee1ee11ee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111e111e1e1e1e111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111ee11e1e1e1e111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111e111e1e1e1e111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111eee1e1e1eee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1ee11ee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111ee11e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1e1e1eee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1ee11ee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1ee11e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1e1e1eee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1e1e1ee111ee1eee1eee11ee1ee1111116661166116616661171117111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e1e1111e111e11e1e1e1e111116161616161611611711111711111111111111111111111111111111111111111111111111111111111111111111
1ee11e1e1e1e1e1111e111e11e1e1e1e111116611616161611611711111711111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e1e1111e111e11e1e1e1e111116161616161611611711111711111111111111111111111111111111111111111111111111111111111111111111
1e1111ee1e1e11ee11e11eee1ee11e1e111116661661166111611171117111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111166166616661111166616611666166611711166166616661666117111111111111111111111111111111111111111111111111111111111111111111111
11111611161616161171116116161161116117111611161616661611111711111111111111111111111111111111111111111111111111111111111111111111
11111611166616611111116116161161116117111611166616161661111711111111111111111111111111111111111111111111111111111111111111111111
11111611161616161171116116161161116117111616161616161611111711111111111111111111111111111111111111111111111111111111111111111111
11111166161616161111166616161666116111711666161616161666117111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111666116616661661111116661661166616661171116616661666166611111166166616661171111111111111111111111111111111111111111111111111
11111616161616161616117111611616116111611711161116161666161111111611161616161117111111111111111111111111111111111111111111111111
11111661161616661616111111611616116111611711161116661616166111111611166616611117111111111111111111111111111111111111111111111111
11111616161616161616117111611616116111611711161616161616161111711611161616161117111111111111111111111111111111111111111111111111
11111616166116161666111116661616166611611171166616161616166617111166161616161171111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111ddd1d1d11dd1ddd11dd11d11ddd111111111dd1111111111dd111111ddd1ddd1d1111dd1ddd11d1111111111111111111111111111111111111
1111111111111ddd1d1d1d1111d11d111d111d1d1111111111d11111111111d111111d111d1d1d111d111d11111d111111111111111111111111111111111111
11111ddd1ddd1d1d1d1d1ddd11d11d111d111d1d11111ddd11d111111ddd11d111111dd11ddd1d111ddd1dd1111d111111111111111111111111111111111111
1111111111111d1d1d1d111d11d11d111d111d1d11d1111111d111d1111111d111d11d111d1d1d11111d1d11111d111111111111111111111111111111111111
1111111111111d1d11dd1dd11ddd11dd11d11ddd1d1111111ddd1d1111111ddd1d111d111d1d1ddd1dd11ddd11d1111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1ee11ee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1ee11e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1e1e1eee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
82888222822882228888822882288288888282288282822288888888888888888888888888888888888888888222822282828882822282288222822288866688
82888828828282888888882888288288882888288282888288888888888888888888888888888888888888888882828882828828828288288282888288888888
82888828828282288888882888288222882888288222882288888888888888888888888888888888888888888882822282228828822288288222822288822288
82888828828282888888882888288282882888288882888288888888888888888888888888888888888888888882888288828828828288288882828888888888
82228222828282228888822282228222828882228882822288888888888888888888888888888888888888888882822288828288822282228882822288822288
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
__sfx__
0001000c0105003050040500405004050010500005000050020500005000050000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0001000c0405004050030500205003050040500605007050060500405006050060500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0001000c0505005050080500805006050070500a0500a050080500705009050090500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0001000c0a0500b0500905007050090500b0500a050080500a0500b050090500c0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101000c0d0500c0500b0500b0500c0500d0500a0500a0500d0500c0500b0500b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000