реплики
This commit is contained in:
@@ -37,6 +37,7 @@
|
|||||||
<script src="игра/240.Столкновения.js"></script>
|
<script src="игра/240.Столкновения.js"></script>
|
||||||
<script src="игра/260.Подсказки.js"></script>
|
<script src="игра/260.Подсказки.js"></script>
|
||||||
<script src="игра/280.Меню.js"></script>
|
<script src="игра/280.Меню.js"></script>
|
||||||
|
<script src="игра/300.Реплики.js"></script>
|
||||||
<script src="игра/700.Игра.js"></script>
|
<script src="игра/700.Игра.js"></script>
|
||||||
<script>
|
<script>
|
||||||
var игра = new Игра();
|
var игра = new Игра();
|
||||||
|
|||||||
@@ -1,33 +1,76 @@
|
|||||||
function Меню(события, подсказки)
|
function Меню(события, подсказки, реплики)
|
||||||
{
|
{
|
||||||
this.создать = function()
|
this.создать = function()
|
||||||
{
|
{
|
||||||
события.подписать(this);
|
события.подписать(this);
|
||||||
this.установитьМеню();
|
this.установитьМеню();
|
||||||
|
this.улавливатьВыбор();
|
||||||
};
|
};
|
||||||
|
|
||||||
this.обработатьСобытие = function(событие)
|
this.обработатьСобытие = function(событие)
|
||||||
{
|
{
|
||||||
let мышь = "мышь/нажатие/";
|
let мышь = "мышь/нажатие/";
|
||||||
|
let сами = "меню/";
|
||||||
if (событие.startsWith(мышь))
|
if (событие.startsWith(мышь))
|
||||||
{
|
{
|
||||||
let значения = событие.substring(мышь.length).split("/");
|
let значения = событие.substring(мышь.length).split("/");
|
||||||
let элемент = значения[2];
|
let элемент = значения[2];
|
||||||
let имя = подсказки.подсказкаДляЭлемента(элемент);
|
let имя = подсказки.подсказкаДляЭлемента(элемент);
|
||||||
if (имя)
|
if (имя && имя in реплики.задано)
|
||||||
{
|
{
|
||||||
this.отобразитьМеню(имя);
|
this.отобразитьМеню(имя);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (событие.startsWith(сами))
|
||||||
|
{
|
||||||
|
UIkit.modal("#меню").hide();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.отобразитьМеню = function(имя)
|
this.отобразитьМеню = function(имя)
|
||||||
{
|
{
|
||||||
|
this.активнаяПодсказка = имя;
|
||||||
let подсказка = подсказки.задано[имя];
|
let подсказка = подсказки.задано[имя];
|
||||||
document.getElementById("меню-заголовок").innerHTML = подсказка.текст;
|
document.getElementById("меню-заголовок").innerHTML = подсказка.текст;
|
||||||
UIkit.modal("#меню").show();
|
UIkit.modal("#меню").show();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.улавливатьВыбор = function()
|
||||||
|
{
|
||||||
|
var тут = this;
|
||||||
|
let глаз = document.getElementById("меню-кнопка-глаз");
|
||||||
|
глаз.addEventListener(
|
||||||
|
"click",
|
||||||
|
function() {
|
||||||
|
события.уведомить(`меню/глаз/${тут.активнаяПодсказка}`);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
let рука = document.getElementById("меню-кнопка-рука");
|
||||||
|
рука.addEventListener(
|
||||||
|
"click",
|
||||||
|
function() {
|
||||||
|
события.уведомить(`меню/рука/${тут.активнаяПодсказка}`);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
let рот = document.getElementById("меню-кнопка-рот");
|
||||||
|
рот.addEventListener(
|
||||||
|
"click",
|
||||||
|
function() {
|
||||||
|
события.уведомить(`меню/рот/${тут.активнаяПодсказка}`);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
let нога = document.getElementById("меню-кнопка-нога");
|
||||||
|
нога.addEventListener(
|
||||||
|
"click",
|
||||||
|
function() {
|
||||||
|
события.уведомить(`меню/нога/${тут.активнаяПодсказка}`);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
this.установитьМеню = function()
|
this.установитьМеню = function()
|
||||||
{
|
{
|
||||||
let html = `
|
let html = `
|
||||||
@@ -37,16 +80,16 @@ function Меню(события, подсказки)
|
|||||||
<h2 id="меню-заголовок" class="uk-modal-title">Заголовок</h2>
|
<h2 id="меню-заголовок" class="uk-modal-title">Заголовок</h2>
|
||||||
<div class="uk-child-width-1-4 uk-text-center" uk-grid>
|
<div class="uk-child-width-1-4 uk-text-center" uk-grid>
|
||||||
<div>
|
<div>
|
||||||
<div class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">👁️</div>
|
<div id="меню-кнопка-глаз" class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">👁️</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">🤚</div>
|
<div id="меню-кнопка-рука" class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">🤚</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">🗣</div>
|
<div id="меню-кнопка-рот" class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">🗣</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">🥾</div>
|
<div id="меню-кнопка-нога" class="uk-card uk-card-small uk-card-hover uk-card-default uk-card-body">🥾</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
69
4.1/игра/300.Реплики.js
Normal file
69
4.1/игра/300.Реплики.js
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
function Реплики(события)
|
||||||
|
{
|
||||||
|
this.создать = function()
|
||||||
|
{
|
||||||
|
this.задано = {};
|
||||||
|
события.подписать(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.номерРеплики = function(инструмент)
|
||||||
|
{
|
||||||
|
if (инструмент == "рука")
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if (инструмент == "рот")
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
else if (инструмент == "нога")
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
// "глаз"
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.обработатьКлюч = function(ключ, путь, значение)
|
||||||
|
{
|
||||||
|
if (путь[0] != "реплики")
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let имя = путь[1];
|
||||||
|
let свойство = путь.slice(2).join(".");
|
||||||
|
if (!this.задано[имя])
|
||||||
|
{
|
||||||
|
this.задано[имя] = {};
|
||||||
|
}
|
||||||
|
this.задано[имя][свойство] = значение;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.обработатьСобытие = function(событие)
|
||||||
|
{
|
||||||
|
let меню = "меню/";
|
||||||
|
if (событие.startsWith(меню))
|
||||||
|
{
|
||||||
|
let значения = событие.substring(меню.length).split("/");
|
||||||
|
let инструмент = значения[0];
|
||||||
|
let подсказка = значения[1];
|
||||||
|
this.отобразитьРеплику(инструмент, подсказка);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.отобразитьРеплику = function(инструмент, подсказка)
|
||||||
|
{
|
||||||
|
let номер = this.номерРеплики(инструмент);
|
||||||
|
let реплика = this.задано[подсказка][номер];
|
||||||
|
let частей = реплика.split(/ /);
|
||||||
|
let длительность = частей.length * 1000;
|
||||||
|
UIkit.notification({
|
||||||
|
message: реплика,
|
||||||
|
timeout: длительность,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// Конструктор.
|
||||||
|
this.создать();
|
||||||
|
};
|
||||||
@@ -23,7 +23,8 @@ function Игра()
|
|||||||
мир.мышь = new Мышь(мир.события);
|
мир.мышь = new Мышь(мир.события);
|
||||||
мир.столкновения = new Столкновения(мир.события, мир.тела, мир.физдвижок);
|
мир.столкновения = new Столкновения(мир.события, мир.тела, мир.физдвижок);
|
||||||
мир.подсказки = new Подсказки();
|
мир.подсказки = new Подсказки();
|
||||||
мир.меню = new Меню(мир.события, мир.подсказки);
|
мир.реплики = new Реплики(мир.события);
|
||||||
|
мир.меню = new Меню(мир.события, мир.подсказки, мир.реплики);
|
||||||
this.ключники = [
|
this.ключники = [
|
||||||
new Заголовок(),
|
new Заголовок(),
|
||||||
мир.виды,
|
мир.виды,
|
||||||
@@ -35,6 +36,7 @@ function Игра()
|
|||||||
мир.сцена,
|
мир.сцена,
|
||||||
мир.столкновения,
|
мир.столкновения,
|
||||||
мир.подсказки,
|
мир.подсказки,
|
||||||
|
мир.реплики,
|
||||||
];
|
];
|
||||||
|
|
||||||
var z64 = мир.параметрыЗапуска()["z64"];
|
var z64 = мир.параметрыЗапуска()["z64"];
|
||||||
|
|||||||
Reference in New Issue
Block a user