JSDoc
This commit is contained in:
parent
8e0c66565c
commit
1b7ed67f3e
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,2 @@
|
||||
node_modules/
|
||||
package-lock.json
|
||||
docs/DOCS.md
|
||||
|
142
docs/DOCS.md
Normal file
142
docs/DOCS.md
Normal file
@ -0,0 +1,142 @@
|
||||
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
|
||||
|
||||
## setAreas
|
||||
|
||||
Устанавливает размеры и положение зон для отрисовки
|
||||
|
||||
### Parameters
|
||||
|
||||
* `canvas` **[Object][1]**
|
||||
* `landscape_orientation` **Bool** текущая ориентация игры
|
||||
* `logoImage` **[Image][2]** логотип
|
||||
|
||||
Returns **[Object][1]** список зон
|
||||
|
||||
## getMousePos
|
||||
|
||||
Возвращает
|
||||
|
||||
### Parameters
|
||||
|
||||
* `canvas` **[Object][1]** canvas с которого считывается позиция курсора
|
||||
* `event` **[Event][3]**
|
||||
|
||||
Returns **[Object][1]** координаты X, Y положения курсора на canvas
|
||||
|
||||
## isInside
|
||||
|
||||
Проверяет положение курсора в области объекта
|
||||
|
||||
### Parameters
|
||||
|
||||
* `mousePos` **[Object][1]** { x:, y: } курсора мыши
|
||||
* `rect` **[Object][1]** квадратная область
|
||||
|
||||
Returns **Bool**
|
||||
|
||||
## clearContext
|
||||
|
||||
### Parameters
|
||||
|
||||
* `canvas` **[Object][1]** canvas object
|
||||
* `color` **[String][4]** строка с цветом (HEX, либо имя, либо rgba, etc)
|
||||
|
||||
## getCenterH
|
||||
|
||||
Возвращает X координату для центрировки объекта
|
||||
|
||||
### Parameters
|
||||
|
||||
* `canvasWidth` **Integer**
|
||||
* `objectWidth` **Integer**
|
||||
|
||||
Returns **Integer** X координата
|
||||
|
||||
## getCenterV
|
||||
|
||||
Возвращает Y координату для центрировки объекта
|
||||
|
||||
### Parameters
|
||||
|
||||
* `canvasHeight` **Integer**
|
||||
* `objectHeight` **Integer**
|
||||
|
||||
Returns **Integer** Y координата
|
||||
|
||||
## drawProgressBar
|
||||
|
||||
Рисует полосу прогресса с визуализацией правильных и неправильных ответов
|
||||
|
||||
### Parameters
|
||||
|
||||
* `context`
|
||||
* `area` **[Object][1]** зона в которой будет отрисовываться объект
|
||||
* `colors` **[Object][1]** объект цветов
|
||||
* `questions` **[Object][1]** объект вопросов
|
||||
|
||||
## imagePreloader
|
||||
|
||||
Функция, которая загружает изображения в документ
|
||||
и по завершению выполнятся callback() функция
|
||||
|
||||
### Parameters
|
||||
|
||||
* `images` **[Array][5]** массив с именами файлов
|
||||
* `callback` **[Function][6]** callback() функция
|
||||
|
||||
## shuffle
|
||||
|
||||
Функция случайным образом перемешивает массив
|
||||
|
||||
### Parameters
|
||||
|
||||
* `array` **[Array][5]** массив, элементы которого будут перемешаны
|
||||
|
||||
## setOrientation
|
||||
|
||||
Функция возвращает ориентацию игры в зависимости от размера canvas
|
||||
|
||||
### Parameters
|
||||
|
||||
* `canvas` **[Object][1]** canvas object
|
||||
|
||||
Returns **Bool** значение, которое присвается landscape_orientation в index.js
|
||||
|
||||
## checkAnswer
|
||||
|
||||
Проверяет правильность ответа на вопрос и устанавливает статус ответа в верно/неверно
|
||||
|
||||
### Parameters
|
||||
|
||||
* `quest` **[Object][1]** объект вопроса с вариантами ответа и правильным вариантом
|
||||
* `answer` **[String][4]**
|
||||
|
||||
## restartGame
|
||||
|
||||
При выполнении перемешивает вопросы и варианты ответов и запускает игру сначала
|
||||
|
||||
### Parameters
|
||||
|
||||
* `game` **[Object][1]** объект игрового процесса
|
||||
* `quests` **[Object][1]** объект с вопросами
|
||||
|
||||
## playMusic
|
||||
|
||||
Воспроизводит фоновую музыку
|
||||
|
||||
### Parameters
|
||||
|
||||
* `config` **[Object][1]** объект с параметрами движка
|
||||
* `music` **AudioContext**
|
||||
|
||||
[1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|
||||
|
||||
[2]: https://developer.mozilla.org/docs/Web/API/HTMLImageElement/Image
|
||||
|
||||
[3]: https://developer.mozilla.org/docs/Web/API/Event
|
||||
|
||||
[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
|
||||
|
||||
[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
|
||||
|
||||
[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
|
@ -2,6 +2,13 @@ import config from './config.json';
|
||||
|
||||
import * as Draw from './draw.js'
|
||||
|
||||
/**
|
||||
* Устанавливает размеры и положение зон для отрисовки
|
||||
* @param {Object} canvas
|
||||
* @param {Bool} landscape_orientation текущая ориентация игры
|
||||
* @param {Image} logoImage логотип
|
||||
* @return {Object} список зон
|
||||
*/
|
||||
export function setAreas(canvas, landscape_orientation, logoImage) {
|
||||
let areasArray = null;
|
||||
|
||||
|
@ -1,5 +1,11 @@
|
||||
// функции обработки кнопок
|
||||
|
||||
/**
|
||||
* Возвращает
|
||||
* @param {Object} canvas canvas с которого считывается позиция курсора
|
||||
* @param {Event} event
|
||||
* @return {Object} координаты X, Y положения курсора на canvas
|
||||
*/
|
||||
export function getMousePos(canvas, event) {
|
||||
let rect = canvas.getBoundingClientRect();
|
||||
|
||||
@ -9,6 +15,12 @@ export function getMousePos(canvas, event) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяет положение курсора в области объекта
|
||||
* @param {Object} mousePos { x:, y: } курсора мыши
|
||||
* @param {Object} rect квадратная область
|
||||
* @return {Bool}
|
||||
*/
|
||||
export function isInside(mousePos, rect) {
|
||||
return mousePos.x > rect.x && mousePos.x < rect.x + rect.w && mousePos.y < rect.y + rect.h && mousePos.y > rect.y;
|
||||
}
|
||||
|
23
js/draw.js
23
js/draw.js
@ -1,5 +1,9 @@
|
||||
// функции рисоввания
|
||||
|
||||
/**
|
||||
* @param {Object} canvas canvas object
|
||||
* @param {String} color строка с цветом (HEX, либо имя, либо rgba, etc)
|
||||
*/
|
||||
export function clearContext(canvas, color) {
|
||||
let cW = canvas.width;
|
||||
let cH = canvas.height;
|
||||
@ -41,10 +45,22 @@ export function placeImage(canvas, area, imageFile, colors) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает X координату для центрировки объекта
|
||||
* @param {Integer} canvasWidth
|
||||
* @param {Integer} objectWidth
|
||||
* @return {Integer} X координата
|
||||
*/
|
||||
export function getCenterH(canvasWidth, objectWidth) {
|
||||
return canvasWidth / 2 - objectWidth / 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает Y координату для центрировки объекта
|
||||
* @param {Integer} canvasHeight
|
||||
* @param {Integer} objectHeight
|
||||
* @return {Integer} Y координата
|
||||
*/
|
||||
export function getCenterV(canvasHeight, objectHeight) {
|
||||
return canvasHeight / 2 - objectHeight / 2;
|
||||
}
|
||||
@ -74,6 +90,13 @@ export function drawInfo(canvas, landscape_orientation) {
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* Рисует полосу прогресса с визуализацией правильных и неправильных ответов
|
||||
* @param {} context
|
||||
* @param {Object} area зона в которой будет отрисовываться объект
|
||||
* @param {Object} colors объект цветов
|
||||
* @param {Object} questions объект вопросов
|
||||
*/
|
||||
export function drawProgressBar(context, area, colors, questions) {
|
||||
let sizeProgressItem = area.w / questions.length;
|
||||
|
||||
|
14
js/engine.js
14
js/engine.js
@ -1,5 +1,11 @@
|
||||
import config from './config.json';
|
||||
|
||||
/**
|
||||
* Функция, которая загружает изображения в документ
|
||||
* и по завершению выполнятся callback() функция
|
||||
* @param {Array} images массив с именами файлов
|
||||
* @param {Function} callback callback() функция
|
||||
*/
|
||||
export function imagePreloader(images, callback) {
|
||||
let counter = 0;
|
||||
|
||||
@ -15,9 +21,11 @@ export function imagePreloader(images, callback) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Функция случайным образом перемешивает массив
|
||||
* @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]];
|
||||
@ -28,7 +36,7 @@ export function shuffle(array) {
|
||||
/**
|
||||
* Функция возвращает ориентацию игры в зависимости от размера canvas
|
||||
* @param {Object} canvas canvas object
|
||||
* @return {Bool} landscape_orientation
|
||||
* @return {Bool} значение, которое присвается landscape_orientation в index.js
|
||||
*/
|
||||
export function setOrientation(canvas) {
|
||||
let landscape_orientation = null;
|
||||
|
10
js/game.js
10
js/game.js
@ -2,6 +2,11 @@
|
||||
|
||||
import { shuffle } from './engine.js';
|
||||
|
||||
/**
|
||||
* Проверяет правильность ответа на вопрос и устанавливает статус ответа в верно/неверно
|
||||
* @param {Object} quest объект вопроса с вариантами ответа и правильным вариантом
|
||||
* @param {String} answer
|
||||
*/
|
||||
export function checkAnswer(quest, answer) {
|
||||
if (Array.isArray(quest.rightAnswer)) {
|
||||
let lowerCaseArray = [];
|
||||
@ -24,6 +29,11 @@ export function checkAnswer(quest, answer) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* При выполнении перемешивает вопросы и варианты ответов и запускает игру сначала
|
||||
* @param {Object} game объект игрового процесса
|
||||
* @param {Object} quests объект с вопросами
|
||||
*/
|
||||
export function restartGame(game, quests) {
|
||||
// shuffle quests and answers order
|
||||
shuffle(quests);
|
||||
|
@ -44,8 +44,7 @@ window.onload = function() {
|
||||
images.logo = imageLogo;
|
||||
|
||||
let loadingImages = [];
|
||||
loadingImages.push(gameData.result.notPassed);
|
||||
loadingImages.push(gameData.result.passed);
|
||||
loadingImages.push(gameData.result.notPassed, gameData.result.passed);
|
||||
|
||||
for (const [key, value] of Object.entries(gameData.questions)) {
|
||||
loadingImages.push(value.image);
|
||||
|
@ -1,3 +1,8 @@
|
||||
/**
|
||||
* Воспроизводит фоновую музыку
|
||||
* @param {Object} config объект с параметрами движка
|
||||
* @param {AudioContext} music
|
||||
*/
|
||||
export function playMusic(config, music) {
|
||||
let request = new XMLHttpRequest();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user