"use strict";(self.webpackChunkelement_web=self.webpackChunkelement_web||[]).push([[4522],{"./src/effects/spaceinvaders/index.ts":(t,e,i)=>{i.d(e,{default:()=>c});var s=i("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),n=i("./src/utils/arrays.ts");function r(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,s)}return i}function o(t){for(var e=1;e{if(!t)return;this.context=t.getContext("2d"),this.particles=[];const i=this.options.maxCount;for(;this.particles.length{this.isRunning=!1}),(0,s.A)(this,"resetParticle",(t,e,i)=>(t.x=Math.random()*e,t.y=Math.random()*-i,t.xCol=t.x,t.gravity=this.options.gravity+6*Math.random()+4,t)),(0,s.A)(this,"renderLoop",()=>{if(this.context&&this.context.canvas)if(0===this.particles.length)this.context.clearRect(0,0,this.context.canvas.width,this.context.canvas.height);else{(Date.now()-this.lastAnimationTime>=15||!this.lastAnimationTime)&&(this.context.clearRect(0,0,this.context.canvas.width,this.context.canvas.height),this.lastAnimationTime=Date.now(),this.animateAndRenderInvaders()),requestAnimationFrame(this.renderLoop)}}),this.options=o(o({},a),t)}animateAndRenderInvaders(){if(this.context&&this.context.canvas){this.context.font="50px Twemoji";for(const t of(0,n.PF)(this.particles))t.y+=t.gravity,this.context.save(),this.context.fillText("👾",t.x,t.y),this.context.restore()}}}}}]); //# sourceMappingURL=4522.js.map