|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /*
- *
- * Реакции
- *
- */
-
-
- НастроитьМышь = мир =>
- {
- мир.сцена.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 (
- (мир.управление && мир.мышь.нажата) &&
- (
- (мир.управление.направление != новое.направление) ||
- (мир.управление.прыжок != новое.прыжок)
- )
- ) {
- мир.управление = новое;
- мир.уведомить("изменили управление");
- }
- };
-
-
- /*
- *
- * Последовательность
- *
- */
-
-
- мир.разобрать(`
- создать сцену
- настроить мышь
- обновить сцену
- уведомить о мыши
- изменили мышь
- уведомить об управлении
- `);
-
|