@@ -1,5 +1,12 @@ | |||
ПИМ | MUI | |||
1.0.0 | |||
https://git.opengamestudio.org/mahjong/mahjong-ui | |||
/привет|hello.череда | |||
x /привет|hello.js | |||
x /окончание|ending.js | |||
/окончание|ending.череда | |||
x /приветствие|welcome.js | |||
/приветствие|welcome.череда | |||
x /пуск|run.js | |||
/пуск|run.череда | |||
x /управление|controls.js | |||
/управление|controls.череда |
@@ -0,0 +1,147 @@ | |||
// // // // | |||
ЗадатьПораженческоеСодержимоеОкнуОкончания = мир => | |||
{ | |||
$(`#${мир.окна.окончание.указатель}-содержимое`).html(` | |||
<span class="uk-text-large">Поражение</span> | |||
⚬ <span class="uk-text-large uk-text-bold">失败</span> ⚬ | |||
<span class="uk-text-large">Defeat</span> | |||
`); | |||
}; | |||
// // // // | |||
ЗадатьПобедноеСодержимоеОкнуОкончания = мир => | |||
{ | |||
$(`#${мир.окна.окончание.указатель}-содержимое`).html(` | |||
<span class="uk-text-large">Победа</span> | |||
⚬ <span class="uk-text-large uk-text-bold">胜利</span> ⚬ | |||
<span class="uk-text-large">Victory</span> | |||
`); | |||
}; | |||
// // // // | |||
ПлавноПоказатьОкноОкончания = мир => | |||
{ | |||
const css = ` | |||
#${мир.окна.окончание.указатель} | |||
{ | |||
opacity: 0; | |||
animation: ${мир.окна.окончание.указатель}ПлавноПоказать 0.5s ease; | |||
animation-fill-mode: forwards; | |||
} | |||
`; | |||
мир.окна.окончание.анимация.innerHTML = css; | |||
мир.окна.окончание.элемент.style.display = "block"; | |||
}; | |||
// // // // | |||
ПодготовитьАнимациюОкнаОкончания = мир => | |||
{ | |||
мир.окна.окончание.анимация = document.createElement("style"); | |||
document.head.appendChild(мир.окна.окончание.анимация); | |||
}; | |||
// // // // | |||
ЗадатьВидИАнимациюОкнаОкончания = мир => | |||
{ | |||
const css = ` | |||
#${мир.окна.окончание.указатель}-тело | |||
{ | |||
position: absolute; | |||
left: 50%; | |||
top: 50%; | |||
transform: translateX(-50%) translateY(-50%); | |||
} | |||
#${мир.окна.окончание.указатель} | |||
{ | |||
background-color: white; | |||
position: fixed; | |||
left: 0; | |||
top: 0; | |||
right: 0; | |||
bottom: 0; | |||
} | |||
@keyframes ${мир.окна.окончание.указатель}ПлавноСкрыть | |||
{ | |||
0% | |||
{ | |||
opacity: 1; | |||
} | |||
100% | |||
{ | |||
opacity: 0; | |||
} | |||
} | |||
@keyframes ${мир.окна.окончание.указатель}ПлавноПоказать | |||
{ | |||
0% | |||
{ | |||
opacity: 0; | |||
} | |||
100% | |||
{ | |||
opacity: 1; | |||
} | |||
} | |||
`; | |||
var вид = document.createElement("style"); | |||
вид.innerHTML = css; | |||
document.head.appendChild(вид); | |||
}; | |||
// // // // | |||
СоздатьОкноОкончания = мир => | |||
{ | |||
мир.окна.окончание = { | |||
"указатель": "окно-окончания", | |||
}; | |||
const html = ` | |||
<div id="${мир.окна.окончание.указатель}-тело"> | |||
<center> | |||
<span id="${мир.окна.окончание.указатель}-содержимое"> | |||
</span> | |||
<hr class="uk-divider-icon"> | |||
<p> | |||
<a href="https://twitter.com/opengamestudio" target="_blank" class="uk-icon-button" uk-icon="twitter"></a> | |||
</p> | |||
</center> | |||
</div> | |||
`; | |||
var окно = document.createElement("div"); | |||
окно.id = мир.окна.окончание.указатель; | |||
окно.innerHTML = html; | |||
document.body.appendChild(окно); | |||
окно.style.display = "none"; | |||
мир.окна.окончание.элемент = окно; | |||
}; |
@@ -0,0 +1,10 @@ | |||
надо создать окно окончания | |||
создать окно окончания | |||
задать вид и анимацию окна окончания | |||
подготовить анимацию окна окончания | |||
победа | |||
задать победное содержимое окну окончания | |||
плавно показать окно окончания | |||
поражение | |||
задать пораженческое содержимое окну окончания | |||
плавно показать окно окончания |
@@ -1,7 +0,0 @@ | |||
ПоприветствоватьМир = function() | |||
{ | |||
console.log("Привет, мир!"); | |||
console.log("Hello, world!"); | |||
document.body.innerHTML += "<h1>Привет, мир!</h1>"; | |||
document.body.innerHTML += "<h1>Hello, world!</h1>"; | |||
}; |
@@ -1,2 +0,0 @@ | |||
пуск | |||
поприветствовать мир |
@@ -0,0 +1,209 @@ | |||
// // // // | |||
ВыбратьРаскладкуПровальную = мир => | |||
{ | |||
мир.выбраннаяРаскладка = "😭"; | |||
мир.уведомить("выбрали раскладку"); | |||
}; | |||
// // // // | |||
ВыбратьРаскладкуУспешную = мир => | |||
{ | |||
мир.выбраннаяРаскладка = "😀"; | |||
мир.уведомить("выбрали раскладку"); | |||
}; | |||
// // // // | |||
ВыбратьРаскладкуX = мир => | |||
{ | |||
мир.выбраннаяРаскладка = "X"; | |||
мир.уведомить("выбрали раскладку"); | |||
}; | |||
// // // // | |||
ОтключитьОкноПриветствия = мир => | |||
{ | |||
мир.окна.приветствие.элемент.style.display = "none"; | |||
}; | |||
// // // // | |||
ПлавноСкрытьОкноПриветствия = мир => | |||
{ | |||
const css = ` | |||
#${мир.окна.приветствие.указатель} | |||
{ | |||
opacity: 1; | |||
animation: ${мир.окна.приветствие.указатель}ПлавноСкрыть 0.5s ease; | |||
animation-fill-mode: forwards; | |||
animation-delay: 0.1s; | |||
} | |||
`; | |||
мир.окна.приветствие.анимация.innerHTML = css; | |||
мир.окна.приветствие.показываем = false; | |||
}; | |||
// // // // | |||
ПлавноПоказатьОкноПриветствия = мир => | |||
{ | |||
const css = ` | |||
#${мир.окна.приветствие.указатель} | |||
{ | |||
opacity: 0; | |||
animation: ${мир.окна.приветствие.указатель}ПлавноПоказать 1s ease; | |||
animation-fill-mode: forwards; | |||
} | |||
`; | |||
мир.окна.приветствие.анимация.innerHTML = css; | |||
мир.окна.приветствие.показываем = true; | |||
мир.окна.приветствие.элемент.style.display = "block"; | |||
}; | |||
// // // // | |||
ПодготовитьАнимациюОкнаПриветствия = мир => | |||
{ | |||
мир.окна.приветствие.анимация = document.createElement("style"); | |||
document.head.appendChild(мир.окна.приветствие.анимация); | |||
мир.окна.приветствие.показываем = true; | |||
мир.окна.приветствие.элемент.addEventListener( | |||
"animationend", | |||
function() | |||
{ | |||
if (мир.окна.приветствие.показываем) | |||
{ | |||
мир.уведомить("плавно показали окно приветствия"); | |||
} | |||
else { | |||
мир.уведомить("плавно скрыли окно приветствия"); | |||
} | |||
} | |||
); | |||
}; | |||
// // // // | |||
ЗадатьВидИАнимациюОкнаПриветствия = мир => | |||
{ | |||
const css = ` | |||
#${мир.окна.приветствие.указатель}-тело | |||
{ | |||
position: absolute; | |||
left: 50%; | |||
top: 50%; | |||
transform: translateX(-50%) translateY(-50%); | |||
} | |||
#${мир.окна.приветствие.указатель} | |||
{ | |||
background-color: white; | |||
position: fixed; | |||
left: 0; | |||
top: 0; | |||
right: 0; | |||
bottom: 0; | |||
} | |||
@keyframes ${мир.окна.приветствие.указатель}ПлавноСкрыть | |||
{ | |||
0% | |||
{ | |||
opacity: 1; | |||
} | |||
100% | |||
{ | |||
opacity: 0; | |||
} | |||
} | |||
@keyframes ${мир.окна.приветствие.указатель}ПлавноПоказать | |||
{ | |||
0% | |||
{ | |||
opacity: 0; | |||
} | |||
100% | |||
{ | |||
opacity: 1; | |||
} | |||
} | |||
`; | |||
var вид = document.createElement("style"); | |||
вид.innerHTML = css; | |||
document.head.appendChild(вид); | |||
}; | |||
// // // // | |||
СоздатьОкноПриветствия = мир => | |||
{ | |||
мир.окна.приветствие = { | |||
"указатель": "окно-приветствия", | |||
}; | |||
const html = ` | |||
<div id="${мир.окна.приветствие.указатель}-тело"> | |||
<center> | |||
<p> | |||
<span class="uk-text-large">Маджонг</span> | |||
⚬ <span class="uk-text-large uk-text-bold">麻将</span> ⚬ | |||
<span class="uk-text-large">Mahjong</span> | |||
</p> | |||
<span>${мир.версия}</span> | |||
<hr class="uk-divider-icon"> | |||
<p uk-margin> | |||
<p>Выберите раскладку: | 选择布局: | Select layout:</p> | |||
<button id="${мир.окна.приветствие.указатель}-X" class="uk-button uk-button-default">X</button> | |||
<button id="${мир.окна.приветствие.указатель}-😀" class="uk-button uk-button-default">😀</button> | |||
<button id="${мир.окна.приветствие.указатель}-😭" class="uk-button uk-button-default">😭</button> | |||
</p> | |||
</center> | |||
</div> | |||
`; | |||
var окно = document.createElement("div"); | |||
окно.id = мир.окна.приветствие.указатель; | |||
окно.innerHTML = html; | |||
document.body.appendChild(окно); | |||
окно.style.display = "none"; | |||
мир.окна.приветствие.элемент = окно; | |||
$(`#${мир.окна.приветствие.указатель}-X`).click(function() { | |||
мир.уведомить("кнопка раскладки X"); | |||
}); | |||
$(`#${мир.окна.приветствие.указатель}-😀`).click(function() { | |||
мир.уведомить("кнопка раскладки 😀"); | |||
}); | |||
$(`#${мир.окна.приветствие.указатель}-😭`).click(function() { | |||
мир.уведомить("кнопка раскладки 😭"); | |||
}); | |||
}; |
@@ -0,0 +1,17 @@ | |||
надо создать окно приветствия | |||
создать окно приветствия | |||
задать вид и анимацию окна приветствия | |||
подготовить анимацию окна приветствия | |||
плавно показать окно приветствия | |||
кнопка раскладки X | |||
выбрать раскладку X | |||
кнопка раскладки 😀 | |||
выбрать раскладку успешную | |||
кнопка раскладки 😭 | |||
выбрать раскладку провальную | |||
выбрали раскладку | |||
плавно скрыть окно приветствия | |||
плавно скрыли окно приветствия | |||
отключить окно приветствия |
@@ -0,0 +1,11 @@ | |||
// // // // | |||
СоздатьОкнаМаджонга = мир => | |||
{ | |||
мир.уведомить("надо создать окно управления"); | |||
мир.уведомить("надо создать окно приветствия"); | |||
мир.уведомить("надо создать окно окончания"); | |||
}; |
@@ -0,0 +1,2 @@ | |||
пуск модулей маджонга | |||
создать окна маджонга |
@@ -0,0 +1,100 @@ | |||
// // // // | |||
СообщитьТекущееЗначениеМасштаба = мир => | |||
{ | |||
var масштаб = мир.масштаб * 100; | |||
var сообщение = `🔍 ${масштаб}%`; | |||
UIkit.notification({ | |||
message: сообщение, | |||
timeout: 500 | |||
}); | |||
}; | |||
// // // // | |||
УменьшитьМасштаб = мир => | |||
{ | |||
мир.масштаб -= 0.5; | |||
if (мир.масштаб < 1) | |||
{ | |||
мир.масштаб = 1; | |||
} | |||
мир.уведомить("изменили масштаб"); | |||
}; | |||
// // // // | |||
УвеличитьМасштаб = мир => | |||
{ | |||
мир.масштаб += 0.5; | |||
мир.уведомить("изменили масштаб"); | |||
}; | |||
// // // // | |||
СоздатьЭлементыУправленияМасштабом = мир => | |||
{ | |||
var элементы = document.createElement("div"); | |||
элементы.innerHTML = ` | |||
<ul class="uk-iconnav uk-iconnav-vertical"> | |||
<li><a id="увеличить-масштаб" uk-icon="icon: plus; ratio: 2"></a></li> | |||
<li><a id="уменьшить-масштаб" uk-icon="icon: minus; ratio: 2"></a></li> | |||
</ul> | |||
`; | |||
элементы.style = ` | |||
position: fixed; | |||
right: 0; | |||
top: 50%; | |||
transform: translateX(-50%) translateY(-50%); | |||
`; | |||
мир.окна.управление.элемент.appendChild(элементы); | |||
$(`#увеличить-масштаб`).click(function() { | |||
мир.уведомить("кнопка увеличения масштаба"); | |||
}); | |||
$(`#уменьшить-масштаб`).click(function() { | |||
мир.уведомить("кнопка уменьшения масштаба"); | |||
}); | |||
}; | |||
// // // // | |||
ПоказатьОкноУправления = мир => | |||
{ | |||
мир.окна.управление.элемент.style.display = "block"; | |||
}; | |||
// // // // | |||
СоздатьОкноУправления = мир => | |||
{ | |||
мир.окна.управление = { | |||
"указатель": "окно-управления", | |||
}; | |||
var окно = document.createElement("div"); | |||
окно.id = мир.окна.управление.указатель; | |||
document.body.appendChild(окно); | |||
окно.style = ` | |||
position: absolute; | |||
left: 0; | |||
top: 0; | |||
right: 0; | |||
bottom: 0; | |||
`; | |||
окно.style.display = "none"; | |||
мир.окна.управление.элемент = окно; | |||
}; |
@@ -0,0 +1,11 @@ | |||
надо создать окно управления | |||
создать окно управления | |||
создать элементы управления масштабом | |||
выбрали раскладку | |||
показать окно управления | |||
кнопка увеличения масштаба | |||
увеличить масштаб | |||
кнопка уменьшения масштаба | |||
уменьшить масштаб | |||
изменили масштаб | |||
сообщить текущее значение масштаба |