Files
ogs-site/К/игра/109.управление.js
2021-04-17 00:13:37 +03:00

105 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
*
* Реакции
*
*/
НастроитьМышь = мир =>
{
мир.сцена.input.mouse.disableContextMenu();
};
// // // //
УведомитьОМыши = мир =>
{
var мышь = мир.сцена.input.activePointer;
const новое = {
"x": мышь.x,
"y": мышь.y,
"нажата": мышь.isDown,
};
if (
мир.мышь &&
мир.мышь.x == новое.x &&
мир.мышь.y == новое.y &&
мир.мышь.нажата == новое.нажата
) {
// Ничего не делаем.
}
else
{
мир.мышь = новое;
мир.уведомить("изменили мышь");
}
};
// // // //
УведомитьОбУправлении = мир =>
{
const камера = мир.сцена.cameras.main;
const ширина = камера.width;
const высота = камера.height;
var новое = {
"направление": 0, // Центр.
"прыжок": false,
};
новое.прыжок = (мир.мышь.y < высота * 0.45);
if (мир.мышь.x < ширина * 0.45)
{
новое.направление = -1; // Лево.
}
else if (мир.мышь.x > ширина * 0.55)
{
новое.направление = 1; // Право.
}
// Начало движения.
if (!мир.управление && мир.мышь.нажата)
{
мир.управление = новое;
мир.уведомить("изменили управление");
}
// Окончание движения.
else if (мир.управление && !мир.мышь.нажата)
{
мир.управление = null;
мир.уведомить("изменили управление");
}
// Продолжение движения.
else if (
(мир.управление && мир.мышь.нажата) &&
(
(мир.управление.направление != новое.направление) ||
(мир.управление.прыжок != новое.прыжок)
)
) {
мир.управление = новое;
мир.уведомить("изменили управление");
}
};
/*
*
* Последовательность
*
*/
мир.разобрать(`
создать сцену
настроить мышь
обновить сцену
уведомить о мыши
изменили мышь
уведомить об управлении
`);