Browse Source

управление

master
parent
commit
38e048de73
4 changed files with 139 additions and 2 deletions
  1. +3
    -2
      index.html
  2. +105
    -0
      игра/109.управление.js
  3. +31
    -0
      игра/110.колобок.js
  4. +0
    -0
      игра/111.изба.js

+ 3
- 2
index.html View File

@@ -8,8 +8,9 @@
<body>
<script src="игра/001.мир.js"></script>
<script src="игра/011.phaser.js"></script>
<script src="игра/100.колобок.js"></script>
<script src="игра/101.изба.js"></script>
<script src="игра/109.управление.js"></script>
<script src="игра/110.колобок.js"></script>
<script src="игра/111.изба.js"></script>
<script src="игра/499.пуск.js"></script>
</body>
</html>

+ 105
- 0
игра/109.управление.js View 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 (
(мир.управление && мир.мышь.нажата) &&
(
(мир.управление.направление != новое.направление) ||
(мир.управление.прыжок != новое.прыжок)
)
) {
мир.управление = новое;
мир.уведомить("изменили управление");
}
};


/*
*
* Последовательность
*
*/


мир.разобрать(`
создать сцену
настроить мышь
обновить сцену
уведомить о мыши
изменили мышь
уведомить об управлении
`);


игра/100.колобок.js → игра/110.колобок.js View File

@@ -39,6 +39,35 @@
};


// // // //


ПереместитьКолобка = мир =>
{
if (!мир.управление)
{
мир.колобок.setVelocityX(0);
return;
}

var x = 0;
if (мир.управление.направление == -1)
{
x = -200;
}
else if (мир.управление.направление == 1)
{
x = 200;
}
мир.колобок.setVelocityX(x);

if (мир.управление.прыжок && мир.колобок.body.touching.down)
{
мир.колобок.setVelocityY(-500);
}
};


/*
*
* Последовательность
@@ -53,5 +82,7 @@
создать полы
создать колобка
создать столкновение колобка с полами
изменили управление
переместить колобка
`);


игра/101.изба.js → игра/111.изба.js View File


Loading…
Cancel
Save