@@ -1,5 +1,12 @@ | |||||
ПИМ | MUI | ПИМ | MUI | ||||
1.0.0 | 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 @@ | |||||
надо создать окно управления | |||||
создать окно управления | |||||
создать элементы управления масштабом | |||||
выбрали раскладку | |||||
показать окно управления | |||||
кнопка увеличения масштаба | |||||
увеличить масштаб | |||||
кнопка уменьшения масштаба | |||||
уменьшить масштаб | |||||
изменили масштаб | |||||
сообщить текущее значение масштаба |