управление
This commit is contained in:
@@ -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
игра/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 (
|
||||
(мир.управление && мир.мышь.нажата) &&
|
||||
(
|
||||
(мир.управление.направление != новое.направление) ||
|
||||
(мир.управление.прыжок != новое.прыжок)
|
||||
)
|
||||
) {
|
||||
мир.управление = новое;
|
||||
мир.уведомить("изменили управление");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Последовательность
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
мир.разобрать(`
|
||||
создать сцену
|
||||
настроить мышь
|
||||
обновить сцену
|
||||
уведомить о мыши
|
||||
изменили мышь
|
||||
уведомить об управлении
|
||||
`);
|
||||
|
||||
@@ -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 @@
|
||||
создать полы
|
||||
создать колобка
|
||||
создать столкновение колобка с полами
|
||||
изменили управление
|
||||
переместить колобка
|
||||
`);
|
||||
|
||||
Reference in New Issue
Block a user