nk20/note_kfet/static/js/konami.js

39 lines
1.2 KiB
JavaScript
Raw Normal View History

2020-09-02 22:35:25 +00:00
/*
* Konami code support
*/
// Cursor denote the position in konami code
let cursor = 0
const KONAMI_CODE = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65]
function afterKonami() {
// Load Rythm.js
var rythmScript = document.createElement('script')
rythmScript.setAttribute('src','https://unpkg.com/rythm.js@2.2.5/rythm.min.js')
document.head.appendChild(rythmScript)
rythmScript.addEventListener('load', function() {
// This media source need to be accessible with a cross-origin header
const audioElement = new Audio('https://okazari.github.io/Rythm.js/samples/rythmC.mp3')
audioElement.crossOrigin = 'anonymous'
audioElement.play();
const rythm = new Rythm()
rythm.connectExternalAudioElement(audioElement)
rythm.addRythm('card', 'pulse', 0, 10)
rythm.addRythm('nav-link', 'color', 0, 10, {
from: [0,0,255],
to:[255,0,255]
})
rythm.start()
});
}
// Register custom event
document.addEventListener('keydown', (e) => {
cursor = (e.keyCode == KONAMI_CODE[cursor]) ? cursor + 1 : 0;
if (cursor == KONAMI_CODE.length) {
afterKonami()
}
});