learn to fly 3
|
After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 362 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 23 KiB |
@@ -195,17 +195,116 @@ $('#sort').on('change', updateList);
|
||||
dragElement(document.getElementById('gameButton'));
|
||||
dragElement(document.getElementById('refresh'));
|
||||
|
||||
const sequence = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'KeyB', 'KeyA', 'Enter'];
|
||||
let index = 0;
|
||||
const sequences = [
|
||||
{ keys: ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'KeyB', 'KeyA', 'Enter'], action: () => alert('No easter egg here') },
|
||||
{ keys: ['KeyL', 'KeyE', 'KeyT', 'Space', 'KeyI', 'KeyT', 'Space', 'KeyS', 'KeyN', 'KeyO', 'KeyW'], action: snow },
|
||||
];
|
||||
|
||||
document.addEventListener('keydown', (event) => {
|
||||
index = (event.code === sequence[index]) ? index + 1 : 0;
|
||||
let index = 0;
|
||||
|
||||
if (index === sequence.length) {
|
||||
alert('No easter egg here');
|
||||
document.addEventListener('keydown', (event) => {
|
||||
var failed = true;
|
||||
for (const sequence of sequences) {
|
||||
if (event.code === sequence.keys[index]) {
|
||||
failed = false;
|
||||
index++;
|
||||
|
||||
if (index === sequence.keys.length) {
|
||||
sequence.action();
|
||||
index = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (event.code === sequence.keys[0]) {
|
||||
failed = false;
|
||||
index = 1;
|
||||
}
|
||||
}
|
||||
if (failed){
|
||||
index = 0;
|
||||
}
|
||||
console.log(index);
|
||||
});
|
||||
|
||||
function snow() {
|
||||
function i() {
|
||||
this.D = function() {
|
||||
const t = h.atan(this.i / this.d);
|
||||
l.save(), l.translate(this.b, this.a), l.rotate(-t), l.scale(this.e, this.e * h.max(1, h.pow(this.j, .7) / 15)), l.drawImage(m, -v / 2, -v / 2), l.restore()
|
||||
}
|
||||
}
|
||||
window;
|
||||
const h = Math,
|
||||
r = h.random,
|
||||
a = document,
|
||||
o = Date.now;
|
||||
e = (t => {
|
||||
l.clearRect(0, 0, _, f), l.fill(), requestAnimationFrame(e);
|
||||
const i = .001 * y.et;
|
||||
y.r();
|
||||
const s = L.et * g;
|
||||
for (var n = 0; n < C.length; ++n) {
|
||||
const t = C[n];
|
||||
t.i = h.sin(s + t.g) * t.h, t.j = h.sqrt(t.i * t.i + t.f), t.a += t.d * i, t.b += t.i * i, t.a > w && (t.a = -u), t.b > b && (t.b = -u), t.b < -u && (t.b = b), t.D()
|
||||
}
|
||||
}), s = (t => {
|
||||
for (var e = 0; e < p; ++e) C[e].a = r() * (f + u), C[e].b = r() * _
|
||||
}), n = (t => {
|
||||
c.width = _ = innerWidth, c.height = f = innerHeight, w = f + u, b = _ + u, s()
|
||||
});
|
||||
class d {
|
||||
constructor(t, e = !0) {
|
||||
this._ts = o(), this._p = !0, this._pa = o(), this.d = t, e && this.s()
|
||||
}
|
||||
get et() {
|
||||
return this.ip ? this._pa - this._ts : o() - this._ts
|
||||
}
|
||||
get rt() {
|
||||
return h.max(0, this.d - this.et)
|
||||
}
|
||||
get ip() {
|
||||
return this._p
|
||||
}
|
||||
get ic() {
|
||||
return this.et >= this.d
|
||||
}
|
||||
s() {
|
||||
return this._ts = o() - this.et, this._p = !1, this
|
||||
}
|
||||
r() {
|
||||
return this._pa = this._ts = o(), this
|
||||
}
|
||||
p() {
|
||||
return this._p = !0, this._pa = o(), this
|
||||
}
|
||||
st() {
|
||||
return this._p = !0, this
|
||||
}
|
||||
}
|
||||
const c = a.createElement("canvas");
|
||||
H = c.style, H.position = "fixed", H.left = 0, H.top = 0, H.width = "100vw", H.height = "100vh", H.zIndex = "100000", H.pointerEvents = "none", a.body.insertBefore(c, a.body.children[0]);
|
||||
const l = c.getContext("2d"),
|
||||
p = 300,
|
||||
g = 5e-4,
|
||||
u = 20;
|
||||
let _ = c.width = innerWidth,
|
||||
f = c.height = innerHeight,
|
||||
w = f + u,
|
||||
b = _ + u;
|
||||
const v = 15.2,
|
||||
m = a.createElement("canvas"),
|
||||
E = m.getContext("2d"),
|
||||
x = E.createRadialGradient(7.6, 7.6, 0, 7.6, 7.6, 7.6);
|
||||
x.addColorStop(0, "hsla(255,255%,255%,1)"), x.addColorStop(1, "hsla(255,255%,255%,0)"), E.fillStyle = x, E.fillRect(0, 0, v, v);
|
||||
let y = new d(0, !0),
|
||||
C = [],
|
||||
L = new d(0, !0);
|
||||
for (var j = 0; j < p; ++j) {
|
||||
const t = new i;
|
||||
t.a = r() * (f + u), t.b = r() * _, t.c = 1 * (3 * r() + .8), t.d = .1 * h.pow(t.c, 2.5) * 50 * (2 * r() + 1), t.d = t.d < 65 ? 65 : t.d, t.e = t.c / 7.6, t.f = t.d * t.d, t.g = r() * h.PI / 1.3, t.h = 15 * t.c, t.i = 0, t.j = 0, C.push(t)
|
||||
}
|
||||
s(), EL = a.addEventListener, EL("visibilitychange", () => setTimeout(n, 100), !1), EL("resize", n, !1), e()
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||