X-Git-Url: https://git.r.bdr.sh/rbdr/r.bdr.sh/blobdiff_plain/0fe938a50ab660bbe145aeacd6f4283c163cd31d..4fe5e0ec469be9a18e5f10c6b3118bfe242c6cce:/js/animation.js?ds=sidebyside diff --git a/js/animation.js b/js/animation.js index 9793601..38b95af 100644 --- a/js/animation.js +++ b/js/animation.js @@ -3,6 +3,11 @@ var K = document.querySelector('canvas'), { random: R, PI, cos: C, sin: S, floor, atan2: A } = Math, r = x => floor(R() * x), + id = p => p, + spn = rad => p => ({ + x: p.x + rad * C(l), + y: p.y + rad * S(l) + }), sqr = i => { var p = pos(i) x.fillRect(p.x, p.y, siz, siz) @@ -22,6 +27,7 @@ x.fill() }, lch = i => { + var p = pos(i) x.beginPath() x.lineWidth = 5 @@ -31,6 +37,7 @@ x.stroke() }, hrt = i => { + var p = pos(i) x.fillRect(p.x, p.y, siz, siz) @@ -44,25 +51,21 @@ x.fill() x.closePath() }, - id = p => p, - spn = rad => (p => ({ - x: p.x + rad * C(l), - y: p.y + rad * S(l) - })), mov = i => { + i.x = i.x + spd * C(i.a) i.y = i.y + spd * S(i.a) if (i.x < 0 || i.x > 64) { i.a = A(S(i.a), -C(i.a)) } - if (i.y < 0 || i.y > 64) { i.a = A(-S(i.a), C(i.a)) } }, ucl = i => i.c = i.c.map(c => (c + 5) % 256), frm = t => { + window.requestAnimationFrame(frm) var dt = t - l @@ -92,11 +95,12 @@ a: R() * 2 * PI, c: Array(3).fill(r(256)) })), - S = [sqr, crc, hrt, chs, lch], + H = [sqr, crc, hrt, chs, lch], P = [id, spn(5), spn(15)], - draw = S[r(S.length)], + draw = H[r(H.length)], pos = P[r(P.length)] + frm() } )()