Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

GUNSHIP1KView game page

A small rotational space shooter in 1K
Submitted by toaster — 52 minutes, 5 seconds before the deadline
Add to collection

Play game

GUNSHIP1K's itch.io page

Compressed Bytes used
992

Source Code (OPTIONAL)
pico-8 cartridge // http://www.pico-8.com
version 42
__lua__
ls={{30,82},{-30,82},{-75,43},{-86,-15},{-56,-67},{0,-87},{56,-67},{86,-15},{75,43},{30,82}}
d={a=0,c=7,t=0}i=1function x()n={x=rnd(180)-90,y=rnd(180)-90}add(o,{x=n.x,y=n.y,c=8,a=rnd(1),t=rnd(5)\1+1})end function e(n)if abs(n.dx)<1do n.dx=0end if abs(n.dy)<1do n.dy=0end if n.dx~=0do n.dx-=sgn(n.dx)/2end if n.dy~=0do n.dy-=sgn(n.dy)/2end for e=2,#ls do local e={x1=ls[e-1][1],y1=ls[e-1][2],x2=ls[e][1],y2=ls[e][2]}if b(e,n)<2do c(n,6,n.a)break end end n.x+=n.dx n.y+=n.dy end function c(n,e,d)n.dx+=e*cos(d)n.dy+=e*sin(d)end function h(n)if n.t==0and i>0do return end local e,d=n.x+f[1],n.y+f[2]oval(e-5,d-5,n.x+5+f[3],n.y+5+f[4],n.c)if n.t==1do return end line(e,d,n.x+8*cos(n.a)+f[3],n.y+8*sin(n.a)+f[4],n.c)end function a(n)for e=0,1,.16666do u(n,e,2)end end function u(n,e,d)add(l,{x=n.x,y=n.y,dx=7*cos(e),dy=7*sin(e),t=d})end function b(n,e)local d,f,i,o=n.x2-n.x1,n.y2-n.y1,e.x-n.x1,e.y-n.y1 local t=d*d+f*f local i,o,t=(i*d+o*f)/t if i<0do o,t=n.x1,n.y1 elseif i>1do o,t=n.x2,n.y2 else o=n.x1+i*d t=n.y1+i*f end local n,e=o-e.x,t-e.y return sqrt(n*n+e*e)end function r(n,e,d)return n.x>e.x-d and n.x<e.x+d and n.y>e.y-d and n.y<e.y+d end function _update()if i>1do i-=1elseif i==1do l,o={},{}d.dx,d.dy,i,d.x,d.y,s=0,0,0,0,0,0else if btn(0)do d.a+=0x.04 end if btn(1)do d.a-=0x.04 end if btn(5)and d.dx==0and d.dy==0do c(d,5,d.a-.5)u(d,d.a,0)for n in all(o)do if n.t>1do if n.t==2do c(n,5,n.a-.5)end u(n,n.a,1)end n.ta=atan2(d.x-n.x,d.y-n.y)if n.t==3do n.a+=sgn((n.ta-n.a+.5)%1-.5)*1/16end if n.t==2do n.a=n.ta-.5end end x()end end e(d)for n in all(o)do e(n)end for n in all(l)do n.x+=n.dx n.y+=n.dy if not r(n,{x=k,y=g},128)do del(l,n)end end if i>0do return end for n in all(o)do if r(n,d,6)do a(d)i=30end for e in all(l)do if r(e,n,6)and e.t==0do a(n)del(o,n)s+=1end if r(e,d,6)and e.t==1do a(d)i=30end end end end function _draw()cls()k,g=camera(d.x-63,d.y-63)f={rnd(4)-2,rnd(4)-2,rnd(4)-2,rnd(4)-2}for n=2,#ls do line(ls[n-1][1]+f[1],ls[n-1][2]+f[2],ls[n][1]+f[3],ls[n][2]+f[4],rnd(16))end h(d)for n in all(l)do if n.t<2do circ(n.x,n.y,2)end if n.t>1do circfill(n.x,n.y,8,9+f[1])end end for n in all(o)do h(n)end camera()
print(s,4,4,7)
end

Leave a comment

Log in with itch.io to leave a comment.

Comments

No one has posted a comment yet