переиначить
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>К 0.2.0</title>
|
||||
<title>К 0.3.0</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/phaser@3.54.0/dist/phaser.min.js"></script>
|
||||
<style>
|
||||
html, body {
|
||||
@@ -27,6 +27,7 @@
|
||||
<div id="родитель"></div>
|
||||
<script src="игра/001.мир.js"></script>
|
||||
<script src="игра/011.phaser.js"></script>
|
||||
<script src="игра/108.группы.js"></script>
|
||||
<script src="игра/109.управление.js"></script>
|
||||
<script src="игра/110.колобок.js"></script>
|
||||
<script src="игра/111.изба.js"></script>
|
||||
|
||||
44
игра/108.группы.js
Normal file
44
игра/108.группы.js
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
*
|
||||
* Реакции
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
СоздатьГруппыСущностей = мир =>
|
||||
{
|
||||
мир.каркас = мир.сцена.physics.add.staticGroup();
|
||||
мир.платформы = мир.сцена.physics.add.staticGroup();
|
||||
мир.вещи = мир.сцена.add.group();
|
||||
мир.враги = мир.сцена.add.group();
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
НастроитьСтолкновениеГруппСущностей = мир =>
|
||||
{
|
||||
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
|
||||
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
|
||||
мир.сцена.physics.add.collider(мир.враги, мир.каркас);
|
||||
мир.сцена.physics.add.collider(мир.враги, мир.платформы);
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Последовательность
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
мир.разобрать(`
|
||||
создать сцену
|
||||
создать группы сущностей
|
||||
настроить столкновение групп сущностей
|
||||
`);
|
||||
|
||||
@@ -21,23 +21,12 @@
|
||||
// // // //
|
||||
|
||||
|
||||
СоздатьГруппыСущностей = мир =>
|
||||
{
|
||||
мир.каркас = мир.сцена.physics.add.staticGroup();
|
||||
мир.платформы = мир.сцена.physics.add.staticGroup();
|
||||
мир.враги = мир.сцена.add.group();
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
СоздатьКолобка = мир =>
|
||||
{
|
||||
мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
|
||||
мир.колобок.depth = 10;
|
||||
мир.колобок.body.setSize(50);
|
||||
// портит логику анимации.
|
||||
// Портит анимацию прыжков!
|
||||
//мир.колобок.setBounceY(0.1);
|
||||
|
||||
// Следить за колобком камерой.
|
||||
@@ -74,26 +63,15 @@
|
||||
// // // //
|
||||
|
||||
|
||||
ОпределятьСтолкновениеКолобкаИВраговСГруппамиСущностей = мир =>
|
||||
НастроитьСтолкновениеКолобка = мир =>
|
||||
{
|
||||
мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
|
||||
мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);
|
||||
|
||||
|
||||
мир.сцена.physics.add.collider(мир.враги, мир.каркас);
|
||||
мир.сцена.physics.add.collider(мир.враги, мир.платформы);
|
||||
|
||||
var враг = мир.сцена.physics.add.sprite(750, 100, "основа");
|
||||
враг.setScale(5, 5).refreshBody();
|
||||
враг.depth = 10;
|
||||
мир.враги.add(враг);
|
||||
|
||||
|
||||
var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
|
||||
столкновениеВраги.overlapOnly = true;
|
||||
столкновениеВраги.collideCallback = function(a, b) {
|
||||
мир.уведомить("столкновение с врагом");
|
||||
console.debug("столкновение с врагом");
|
||||
};
|
||||
};
|
||||
|
||||
@@ -157,7 +135,7 @@
|
||||
|
||||
|
||||
ОтключитьСтолкновениеСПлатформами = мир => {
|
||||
мир.столкновениеПлатформы.active = false;
|
||||
мир.столкновениеПлатформы.active = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -165,19 +143,19 @@
|
||||
|
||||
|
||||
ВключитьСтолкновениеСПлатформами = мир => {
|
||||
мир.столкновениеПлатформы.active = true;
|
||||
мир.столкновениеПлатформы.active = true;
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ОстановитьВрагов = мир => {
|
||||
var враги = мир.враги.getChildren();
|
||||
for (var н in враги)
|
||||
ОстановитьПередвижениеВещей = мир => {
|
||||
var вещи = мир.вещи.getChildren();
|
||||
for (var н in вещи)
|
||||
{
|
||||
var враг = враги[н];
|
||||
враг.body.stop();
|
||||
var вещь = вещи[н];
|
||||
вещь.body.stop();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -193,10 +171,9 @@
|
||||
загрузить ресурсы сцены
|
||||
загрузить ресурсы колобка
|
||||
создать сцену
|
||||
создать группы сущностей
|
||||
создать колобка
|
||||
создать анимации колобка
|
||||
определять столкновение колобка и врагов с группами сущностей
|
||||
настроить столкновение колобка
|
||||
изменили управление
|
||||
переместить колобка
|
||||
столкновение с врагом
|
||||
@@ -204,6 +181,6 @@
|
||||
обновить сцену
|
||||
анимировать колобка
|
||||
изменили анимацию колобка
|
||||
остановить врагов
|
||||
остановить передвижение вещей
|
||||
`);
|
||||
|
||||
|
||||
@@ -152,18 +152,12 @@
|
||||
|
||||
|
||||
СоздатьВрагов = мир => {
|
||||
|
||||
console.debug("создать врагов");
|
||||
/*
|
||||
var враг = мир.сцена.physics.add.sprite(150, 100, "основа");
|
||||
//мир.враги.add(враг);
|
||||
|
||||
мир.сцена.physics.add.collider(враг, мир.каркас);
|
||||
мир.сцена.physics.add.collider(враг, мир.платформы);
|
||||
*/
|
||||
|
||||
//var враг = мир.враги.create(100, 100, "основа");//.setOrigin(0, 0);
|
||||
//враг.setScale(часть.ширина, 1).refreshBody();
|
||||
var враг = мир.сцена.physics.add.sprite(750, 100, "основа");
|
||||
враг.setScale(5, 5).refreshBody();
|
||||
враг.depth = 10;
|
||||
мир.враги.add(враг);
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user