js1024
上个月在网上参加了一个比赛玩,叫js1024,是一个限制代码长度在1024字节内的编程比赛。今年比赛的主题是creepy,我花了几个晚上搞了一个不用shim,html从零开始的页面。页面我放在这儿了,效果我自己还挺满意的哈。更多介绍README可见。结果29个参赛作品中只排在了第13名😂。
Minify后的代码如下:
<h1>Creepy Eyes</h1><p>click to interact!</p><canvas id=c></canvas><script>for(S=(M=Math).sin,C=M.cos,A=M.abs,r=e=>X.beginPath(X.fill(X.ellipse(x,y,d,.9*d,e,0,7))),z=e=>7*M.random(),f=e=>X.fillStyle=e,l=e=>{H=(W=c.width=c.height=512)/2,f`#701`,X.fillRect(0,0,W,W),X.translate(H,H),X.shadowColor="#b00",E.sort((e,o)=>o.z-e.z).forEach(o=>{a=o.a,x=o.r*S(a),y=o.r*C(a),v=S(2*(t=e/D)+x)-S(t)+C(3*t+y),x/=b=o.z/99,y/=b,d=80/b+v,q=M.atan2(n-y,m-x),o.b+=(q-o.b)/30,f`#e01`,X.shadowBlur=6,r(v/3),d/=2+v/20,f`#fff`,x-=d*S(a),y-=d*C(a),r(v/9),f`#16b`,X.shadowBlur=0,g=o.b+v/5,j=d/2*(1-o.z/D),x+=C(g)*j,y+=S(g)*j,d*=.4,r(0),o.z-=.2,o.z<0&&(o.z=D),A(m-x)<z&&A(n-y)<z&&o.r--}),z--,requestAnimationFrame(l)},E=[],D=i=n=m=1e3;i-->19;)E.push({z:i*D/n,a:z(),r:512,b:z()});X=c.getContext`2d`,c.onmousemove=e=>{m=e.offsetX-H,n=e.offsetY-H},Y=speechSynthesis,(u=new SpeechSynthesisUtterance).pitch=2,u.rate=.1,c.onclick=e=>{u.text="hello,welcome,we see you,come,eyes on you,closer".split`,`[i++%6],Y.speaking||Y.speak(u),z=i},l()</script>