new file: Files/flashplayer_32_sa.exe new file: favicon.ico new file: globe.gif new file: imgs/download.png new file: imgs/zuck.jpg new file: index.html new file: other.ico new file: script.js new file: site.webmanifest new file: sitemap.html new file: styles/backround.css new file: styles/border.css new file: styles/fonts/Titillium_Web/OFL.txt new file: styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf new file: styles/fonts/webfontkit-20221027-163353/generator_config.txt new file: styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2 new file: styles/fonts/webfontkit-20221027-165950/generator_config.txt new file: styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2 new file: styles/style.css new file: tools/2048/.gitignore new file: tools/2048/.jshintrc new file: tools/2048/CONTRIBUTING.md new file: tools/2048/LICENSE.txt new file: tools/2048/README.md new file: tools/2048/Rakefile new file: tools/2048/favicon.ico new file: tools/2048/index.html new file: tools/2048/js/animframe_polyfill.js new file: tools/2048/js/application.js new file: tools/2048/js/bind_polyfill.js new file: tools/2048/js/classlist_polyfill.js new file: tools/2048/js/game_manager.js new file: tools/2048/js/grid.js new file: tools/2048/js/html_actuator.js new file: tools/2048/js/keyboard_input_manager.js new file: tools/2048/js/local_storage_manager.js new file: tools/2048/js/tile.js new file: tools/2048/meta/apple-touch-icon.png new file: tools/webretro/cores/neocd_libretro.js new file: tools/webretro/cores/neocd_libretro.wasm new file: tools/webretro/cores/nestopia_libretro.js new file: tools/webretro/cores/nestopia_libretro.wasm new file: tools/webretro/cores/o2em_libretro.js new file: tools/webretro/cores/o2em_libretro.wasm new file: tools/webretro/cores/opera_libretro.js new file: tools/webretro/cores/opera_libretro.wasm
142 lines
3.1 KiB
JavaScript
142 lines
3.1 KiB
JavaScript
var bkcore = bkcore || {};
|
|
|
|
bkcore.Audio = {};
|
|
bkcore.Audio.sounds = {};
|
|
|
|
bkcore.Audio.init = function(){
|
|
if(window.AudioContext||window.webkitAudioContext){
|
|
bkcore.Audio._ctx = new (window.AudioContext||window.webkitAudioContext)();
|
|
bkcore.Audio._panner = bkcore.Audio._ctx.createPanner();
|
|
bkcore.Audio._panner.connect(bkcore.Audio._ctx.destination);
|
|
}
|
|
else {
|
|
bkcore.Audio._ctx = null;
|
|
}
|
|
|
|
bkcore.Audio.posMultipler = 1.5;
|
|
};
|
|
|
|
bkcore.Audio.init();
|
|
|
|
bkcore.Audio.addSound = function(src, id, loop, callback, usePanner){
|
|
var ctx = bkcore.Audio._ctx;
|
|
var audio = new Audio();
|
|
|
|
if(ctx){
|
|
var audio = { src: null, gainNode: null, bufferNode: null, loop: loop };
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.responseType = 'arraybuffer';
|
|
|
|
xhr.onload = function(){
|
|
ctx.decodeAudioData(xhr.response, function(b){
|
|
// Create Gain Node
|
|
var gainNode = ctx.createGain();
|
|
|
|
if(usePanner === true){
|
|
gainNode.connect(bkcore.Audio._panner);
|
|
}
|
|
else {
|
|
gainNode.connect(ctx.destination);
|
|
}
|
|
|
|
// Add the audio source
|
|
audio.src = b;
|
|
|
|
//Remember the gain node
|
|
audio.gainNode = gainNode;
|
|
|
|
callback();
|
|
}, function(e){
|
|
console.error('Audio decode failed!', e);
|
|
});
|
|
};
|
|
|
|
xhr.open('GET', src, true);
|
|
xhr.send(null);
|
|
}
|
|
else {
|
|
// Workaround for old Safari
|
|
audio.addEventListener('canplay', function(){
|
|
audio.pause();
|
|
audio.currentTime = 0;
|
|
|
|
callback();
|
|
}, false);
|
|
|
|
audio.autoplay = true;
|
|
audio.loop = loop;
|
|
audio.src = src;
|
|
}
|
|
|
|
bkcore.Audio.sounds[id] = audio;
|
|
};
|
|
|
|
bkcore.Audio.play = function(id){
|
|
var ctx = bkcore.Audio._ctx;
|
|
|
|
if(ctx){
|
|
var sound = ctx.createBufferSource();
|
|
sound.connect(bkcore.Audio.sounds[id].gainNode);
|
|
|
|
sound.buffer = bkcore.Audio.sounds[id].src;
|
|
sound.loop = bkcore.Audio.sounds[id].loop;
|
|
|
|
bkcore.Audio.sounds[id].gainNode.gain.value = 1;
|
|
bkcore.Audio.sounds[id].bufferNode = sound;
|
|
|
|
sound.start ? sound.start(0) : sound.noteOn(0);
|
|
}
|
|
else {
|
|
if(bkcore.Audio.sounds[id].currentTime > 0){
|
|
bkcore.Audio.sounds[id].pause();
|
|
bkcore.Audio.sounds[id].currentTime = 0;
|
|
}
|
|
|
|
bkcore.Audio.sounds[id].play();
|
|
}
|
|
};
|
|
|
|
bkcore.Audio.stop = function(id){
|
|
var ctx = bkcore.Audio._ctx;
|
|
|
|
if(ctx){
|
|
if(bkcore.Audio.sounds[id].bufferNode !== null){
|
|
var bufferNode = bkcore.Audio.sounds[id].bufferNode;
|
|
bufferNode.stop ? bufferNode.stop(ctx.currentTime) : bufferNode.noteOff(ctx.currentTime);
|
|
}
|
|
}
|
|
else {
|
|
bkcore.Audio.sounds[id].pause();
|
|
bkcore.Audio.sounds[id].currentTime = 0;
|
|
}
|
|
};
|
|
|
|
bkcore.Audio.volume = function(id, volume){
|
|
var ctx = bkcore.Audio._ctx;
|
|
|
|
if(ctx){
|
|
bkcore.Audio.sounds[id].gainNode.gain.value = volume;
|
|
}
|
|
else {
|
|
bkcore.Audio.sounds[id].volume = volume;
|
|
}
|
|
};
|
|
|
|
bkcore.Audio.setListenerPos = function(vec){
|
|
if(bkcore.Audio._ctx){
|
|
var panner = bkcore.Audio._panner;
|
|
var vec2 = vec.normalize();
|
|
panner.setPosition(
|
|
vec2.x * bkcore.Audio.posMultipler,
|
|
vec2.y * bkcore.Audio.posMultipler,
|
|
vec2.z * bkcore.Audio.posMultipler
|
|
);
|
|
}
|
|
};
|
|
|
|
bkcore.Audio.setListenerVelocity = function(vec){
|
|
if(bkcore.Audio._ctx){
|
|
var panner = bkcore.Audio._panner;
|
|
//panner.setVelocity(vec.x, vec.y, vec.z);
|
|
}
|
|
}; |