浏览代码

управление

master
父节点
当前提交
38e048de73
共有 4 个文件被更改,包括 139 次插入2 次删除
  1. +3
    -2
      index.html
  2. +105
    -0
      игра/109.управление.js
  3. +31
    -0
      игра/110.колобок.js
  4. +0
    -0
      игра/111.изба.js

+ 3
- 2
index.html 查看文件

@@ -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 查看文件

@@ -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 查看文件

@@ -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 查看文件


正在加载...
取消
保存