From c504f9fe3a26a9a710cb4be5534596db210b1479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Sat, 17 Apr 2021 15:43:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BC=D1=8B=D1=88=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 1 + игра/109.управление.js | 79 ++++++++++++++++++++++++++-- 2 files changed, 76 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 43754cf..1d2076b 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ html, body { margin: 0; padding: 0; + overflow: hidden; } body { diff --git a/игра/109.управление.js b/игра/109.управление.js index 2eafd02..c50f60e 100644 --- a/игра/109.управление.js +++ b/игра/109.управление.js @@ -5,9 +5,10 @@ */ -НастроитьМышь = мир => +НастроитьМышьИКлаву = мир => { мир.сцена.input.mouse.disableContextMenu(); + мир.клавиши = мир.сцена.input.keyboard.createCursorKeys(); }; @@ -41,7 +42,74 @@ // // // // -УведомитьОбУправлении = мир => +УведомитьОКлаве = мир => +{ + var новое = { + "направление": 0, + "прыжок": false, + }; + if (мир.клавиши.left.isDown) + { + новое.направление = -1; + } + else if (мир.клавиши.right.isDown) + { + новое.направление = 1; + } + if (мир.клавиши.space.isDown) + { + новое.прыжок = true; + } + if ( + мир.клава && + мир.клава.направление == новое.направление && + мир.клава.прыжок == новое.прыжок + ) { + // Ничего не делаем. + } + else + { + мир.клава = новое; + мир.уведомить("изменили клаву"); + } +}; + +// // // // + + +УведомитьОбУправленииКлавой = мир => +{ + const естьДвижение = (мир.клава.направление != 0 || мир.клава.прыжок); + // Начало движения. + if (!мир.управление && естьДвижение) + { + мир.управление = мир.клава; + мир.уведомить("изменили управление"); + } + // Окончание движения. + else if (мир.управление && !естьДвижение) + { + мир.управление = null; + мир.уведомить("изменили управление"); + } + // Продолжение движения. + else if ( + (мир.управление && естьДвижение) && + ( + (мир.управление.направление != мир.клава.направление) || + (мир.управление.прыжок != мир.клава.прыжок) + ) + ) { + мир.управление = мир.клава; + мир.уведомить("изменили управление"); + } +}; + + +// // // // + + +УведомитьОбУправленииМышью = мир => { const камера = мир.сцена.cameras.main; const ширина = камера.width; @@ -95,10 +163,13 @@ мир.разобрать(` создать сцену - настроить мышь + настроить мышь и клаву обновить сцену + уведомить о клаве уведомить о мыши изменили мышь - уведомить об управлении + уведомить об управлении мышью +изменили клаву + уведомить об управлении клавой `);