123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- pico-8 cartridge // http://www.pico-8.com
- version 32
- __lua__
- --https://ztiromoritz.github.io/pico-8-shooter/
- --https://github.com/ztiromoritz/pico-8-shooter/tree/master/p8
- function fps()
- f = stat(7)
- print("fps: "..f, 0, 120, 1)
- end
- t=0
- bullets={}
- function init_stars()
- stars={}
- star_cols={1,2,5,6,7,12}
- warp_f=3
- for i=1,#star_cols do
- for j=1,10 do
- local s={
- x=rnd(128),
- y=rnd(128),
- z=i,
- c=star_cols[i]
- }
- add(stars,s)
- end
- end
- end
- function init_enemies()
- enemies={}
- for i=1,10 do
- add(enemies, {
- sp=4,
- m_x=i*16,
- m_y=60-i*8,
- x=-32,
- y=-32,
- r=12,
- })
- end
- end
- function draw_enemies()
- for e in all(enemies) do
- spr(e.sp,e.x,e.y)
- end
- end
- function update_enemies()
- for e in all(enemies) do
- e.x = e.r*sin(t/50) + e.m_x
- e.y = e.r*cos(t/50) + e.m_y
- end
- end
- function init_player()
- player={
- h=3,
- sp=1,
- x=64,
- y=64,
- }
- end
- function draw_health()
- inc=10
- for i=1,player.h do
- spr(2,(inc*i),1)
- end
- end
- function draw_player()
- spr(player.sp,player.x,player.y)
- end
- function update_player()
- if(t%6<3) then
- player.sp=0
- else
- player.sp=1
- end
- end
- function fire()
- local b={
- sp=3,
- x=player.x,
- y=player.y,
- dx=0,
- dy=-3,
- }
- add(bullets,b)
- end
- function draw_bullets()
- for b in all(bullets) do
- spr(b.sp,b.x,b.y)
- end
- end
- function draw_stars()
- for s in all(stars) do
- pset(s.x,s.y,s.c)
- end
- end
- function update_stars()
- for s in all(stars) do
- s.y+=s.z*warp_f/10
- if s.y>128 then
- s.y=0
- s.x=rnd(128)
- end
- end
- end
- function _init()
- player_xpos=64
- player_ypos=64
- init_stars()
- init_player()
- init_enemies()
- end
- function _update60()
- t=t+1
- if ( t > 1000) then t=0 end
- for b in all(bullets) do
- b.x+=b.dx
- b.y+=b.dy
- if b.x < 0 or b.x > 128 or
- b.y < 0 or b.y > 128 then
- del(bullets,b)
- end
- end
- if (btn(0) and player.x > 0) player.x -= 2
- if (btn(1) and player.x < 127) player.x += 2
- if (btn(2) and player.y > 0) player.y -= 2
- if (btn(3) and player.y < 127) player.y += 2
- if btnp(4) then fire() end
- update_stars()
- update_player()
- update_enemies()
- end
- function _draw()
- cls()
- fps()
- draw_health()
- draw_stars()
- draw_player()
- draw_bullets()
- draw_enemies()
- end
- __gfx__
- 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 005dd500005dd500005dd500000000000b3333b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 0455554004555540045555400000000000b33b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 04466440044664400446644000088000000bb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 07466470074664700746647000088000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 07898970079898700700007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 57089075570980755700007500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 55008055550800555500005500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|