{"name":"1995 loading screen","description":"-- 1995 loading screen\n-- alexthescott\n-- 9/2/21\n\np={131,1,129,7,5,133,142,141,13}\npal(p,1)\n\nfunction new_object(c)\n\tobj={}\n\tobj.t=0\n\tobj.tc=rnd(1)\n\tobj.tv=0.0001\n\tobj.a=0+rnd(1)\n\tobj.sc=rnd(1)\n\tobj.sv=0.0005\n\tobj.s=3+((1+sin(obj.sc))/2)*40\n\tobj.c=c\n\t-- origin point, new origin point\n\tobj.op={x=64,y=64}\n\tobj.nop={x=64,y=64}\n\t-- 4 points for square\n\tobj.p1={x=64-obj.s,y=64-obj.s}\n\tobj.p2={x=64+obj.s,y=64-obj.s}\n\tobj.p3={x=64+obj.s,y=64+obj.s}\n\tobj.p4={x=64-obj.s,y=64+obj.s}\n\t\n\tobj.draw=function(self)\n\t\tp1=self.p1;p2=self.p2\n  p3=self.p3;p4=self.p4\n\t\tline(p1.x,p1.y,p2.x,p2.y,self.c)\n\t\tline(p2.x,p2.y,p3.x,p3.y,self.c)\n\t\tline(p3.x,p3.y,p4.x,p4.y,self.c)\n\t\tline(p4.x,p4.y,p1.x,p1.y,self.c)\n\tend\n\t\n\tobj.update=function(self)\n\t\t-- new pos every 2 secs\n\t\tif t()%6==0 then\n\t\t\tif obj.t<5 then\n\t\t\t\tself:new_origin()\n\t\t\telse\n\t\t\t\t-- set pos @ origin\n\t\t\t\tself.nop.x=64\n\t\t\t\tself.nop.y=64\n\t\t\t\t-- stay @ origin for two cycles\n\t\t\t\tif self.t>=12 then\n\t\t\t\t\tself.t=0\n\t\t\t\tend\n\t\t\tend\n\t\t\tself.t+=1\n\t\tend\n\t\t--self:resize()\n\t\tself:rotate()\n\t\tself:move()\n\tend\n\t\n\tobj.rotate=function(self)\n\t\tself.p1=rotate(self.p1,self.op,self.a)\n\t\tself.p2=rotate(self.p2,self.op,self.a)\n\t\tself.p3=rotate(self.p3,self.op,self.a)\n\t\tself.p4=rotate(self.p4,self.op,self.a)\n\t\n\t\tself.a=sin(self.tc)/200\n\t\tself.tc+=self.tv\n\t\t\n\t\tif self.tc==1 then\n\t\t\tself.tc=0\n\t\tend\n\tend\n\t\n\tobj.move=function(self)\n\t\tx_dif=(self.nop.x-self.op.x)/20\n\t\ty_dif=(self.nop.y-self.op.y)/20\n\n\t\tself.op.x+=x_dif;self.op.y+=y_dif\n\t\tself.p1.x+=x_dif;self.p1.y+=y_dif\n\t\tself.p2.x+=x_dif;self.p2.y+=y_dif\n\t\tself.p3.x+=x_dif;self.p3.y+=y_dif\n\t\tself.p4.x+=x_dif;self.p4.y+=y_dif\n\tend\n\t\n\tobj.new_origin=function(self)\n\t\tnew_x=30+rnd(68)\\1\n\t\tnew_y=30+rnd(68)\\1\n\t\tself.nop.x=new_x\n\t\tself.nop.y=new_y\n\tend\n\t\n\treturn obj\nend\n\nfunction rotate(p,o,a)\n\tlocal new_point={}\n\t\n cx=o.x;cy=o.y\n x=p.x;y=p.y\n x-=cx;y-=cy\n      \n local sina=sin(a)\n local cosa=cos(a)\n \n local rotx=cosa*x-sina*y\n local roty=sina*x+cosa*y\n    \n rotx+=cx\n roty+=cy\n  \n new_point.x=rotx\n new_point.y=roty\n   \n return new_point\nend\n\nobjs={}\n\nfor i=1,9 do\n\tif i<4 then\n\t\ti=1\n\telseif i<7 then\n\t\ti=4\n\telse\n\t\ti=7\n\tend\n\tadd(objs,new_object(i))\nend\n\nfunction burn()\n\tfor p=0,512 do\n\t\tx=rnd(128)\\1\n\t\ty=rnd(128)\\1\n\t\tpc=pget(x,y)\n\t\tif pc!=0 and pc%3!=0 then\n\t\t\tpset(x,y,pc+1)\n\t\telse\n\t\t\tpset(x,y,0)\n\t\tend\n\tend\nend\n\ncls()\n_set_fps(60)\n\n::♥::\nif t()<2 then\n\tprint(\"1995\",56,64,1)\n\tprint(\"loading screen\",36,70,1)\nelse\n\tburn()\n\t\n\tfor obj in all(objs) do\n\t\tobj:draw()\n\t\tobj:update()\n\tend\n\t\n\tflip()\nend\ngoto ♥","tags":["pico8","pico-8"],"symbol":"OBJKT","artifactUri":"ipfs://QmYEVjXniHczeHTL7pceqGFDvuDYkaghNMXZU8G6KGGb45","displayUri":"ipfs://QmPKWSJu8amvBn5bT66fL1SE9Wa5kYgpEf9FceEPn6HzkJ","thumbnailUri":"ipfs://QmPKWSJu8amvBn5bT66fL1SE9Wa5kYgpEf9FceEPn6HzkJ","creators":["tz1St3n29AbYXZXV8W1BG41qYzz86J2CFAW7"],"formats":[{"uri":"ipfs://QmYEVjXniHczeHTL7pceqGFDvuDYkaghNMXZU8G6KGGb45","mimeType":"application/x-directory"}],"decimals":0,"isBooleanAmount":false,"shouldPreferSymbol":false}