54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
import config from './config.json';
|
||
|
||
/**
|
||
* Функция, которая загружает изображения в документ
|
||
* и по завершению выполнятся callback() функция
|
||
* @param {Array} images массив с именами файлов
|
||
* @param {Function} callback callback() функция
|
||
*/
|
||
export function imagePreloader(images, callback) {
|
||
// TODO: check file exist
|
||
let counter = 0;
|
||
|
||
function onLoad() {
|
||
counter += 1;
|
||
if (counter == images.length) callback();
|
||
}
|
||
|
||
for (let i of images) {
|
||
let img = document.createElement('img');
|
||
img.onload = img.onerror = onLoad;
|
||
img.src = `assets/images/${i}`;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Функция случайным образом перемешивает массив
|
||
* @param {Array} array массив, элементы которого будут перемешаны
|
||
*/
|
||
export function shuffle(array) {
|
||
for (let i = array.length - 1; i > 0; i--) {
|
||
const j = Math.floor(Math.random() * (i + 1));
|
||
[array[i], array[j]] = [array[j], array[i]];
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Функция возвращает ориентацию игры в зависимости от размера canvas
|
||
* @param {Object} canvas canvas object
|
||
* @return {Bool} значение, которое присвается landscape_orientation в index.js
|
||
*/
|
||
export function setOrientation(canvas) {
|
||
let landscape_orientation = null;
|
||
|
||
if (canvas.width >= canvas.height) landscape_orientation = true;
|
||
else landscape_orientation = false;
|
||
|
||
if (config.debug)
|
||
console.log(landscape_orientation ?
|
||
'Set game orientation to landscape' :
|
||
'Set game orientation to portrait');
|
||
|
||
return landscape_orientation; // true = land | false = port
|
||
}
|