управление
This commit is contained in:
105
игра/109.управление.js
Normal file
105
игра/109.управление.js
Normal file
@@ -0,0 +1,105 @@
|
||||
/*
|
||||
*
|
||||
* Реакции
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
НастроитьМышь = мир =>
|
||||
{
|
||||
мир.сцена.input.mouse.disableContextMenu();
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
УведомитьОМыши = мир =>
|
||||
{
|
||||
var мышь = мир.сцена.input.activePointer;
|
||||
const новое = {
|
||||
"x": мышь.worldX,
|
||||
"y": мышь.worldY,
|
||||
"нажата": мышь.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 (
|
||||
(мир.управление && мир.мышь.нажата) &&
|
||||
(
|
||||
(мир.управление.направление != новое.направление) ||
|
||||
(мир.управление.прыжок != новое.прыжок)
|
||||
)
|
||||
) {
|
||||
мир.управление = новое;
|
||||
мир.уведомить("изменили управление");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Последовательность
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
мир.разобрать(`
|
||||
создать сцену
|
||||
настроить мышь
|
||||
обновить сцену
|
||||
уведомить о мыши
|
||||
изменили мышь
|
||||
уведомить об управлении
|
||||
`);
|
||||
|
||||
Reference in New Issue
Block a user