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