падать

This commit is contained in:
2021-04-22 15:10:13 +03:00
parent 29ddd3dd58
commit 288f525aa8
3 changed files with 88 additions and 17 deletions

View File

@@ -56,7 +56,7 @@
{ {
новое.направление = 1; новое.направление = 1;
} }
if (мир.клавиши.space.isDown) if (мир.клавиши.space.isDown || мир.клавиши.up.isDown)
{ {
новое.прыжок = true; новое.прыжок = true;
} }

View File

@@ -7,7 +7,6 @@
ЗагрузитьРесурсыКолобка= мир => ЗагрузитьРесурсыКолобка= мир =>
{ {
//мир.сцена.load.image("колобок", "ресурсы/колобок/колобок_неподвижен.png");
мир.сцена.load.spritesheet( мир.сцена.load.spritesheet(
"колобок", "колобок",
"ресурсы/колобок/колобок.png", "ресурсы/колобок/колобок.png",
@@ -22,10 +21,11 @@
// // // // // // // //
СоздатьКаркасИПлатформы = мир => СоздатьГруппыСущностей = мир =>
{ {
мир.каркас = мир.сцена.physics.add.staticGroup(); мир.каркас = мир.сцена.physics.add.staticGroup();
мир.платформы = мир.сцена.physics.add.staticGroup(); мир.платформы = мир.сцена.physics.add.staticGroup();
мир.враги = мир.сцена.add.group();
}; };
@@ -34,8 +34,10 @@
СоздатьКолобка = мир => СоздатьКолобка = мир =>
{ {
мир.колобок = мир.сцена.physics.add.sprite(100, 100, "колобок"); мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
мир.колобок.depth = 10; мир.колобок.depth = 10;
мир.колобок.body.setSize(50);
мир.колобок.setBounceY(0.1);
мир.сцена.anims.create({ мир.сцена.anims.create({
key: "неподвижен", key: "неподвижен",
@@ -63,10 +65,27 @@
// // // // // // // //
СоздатьСтолкновениеКолобкаСКаркасомИПлатформами = мир => ОпределятьСтолкновениеКолобкаИВраговСГруппамиСущностей = мир =>
{ {
мир.сцена.physics.add.collider(мир.колобок, мир.каркас); мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
мир.столкновениеПлатформы = мир.сцена.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("столкновение с врагом");
};
}; };
@@ -105,6 +124,35 @@
}; };
// // // //
ОтключитьСтолкновениеСПлатформами = мир => {
мир.столкновениеПлатформы.active = false;
};
// // // //
ВключитьСтолкновениеСПлатформами = мир => {
мир.столкновениеПлатформы.active = true;
};
// // // //
ОстановитьВрагов = мир => {
var враги = мир.враги.getChildren();
for (var н in враги)
{
var враг = враги[н];
враг.body.stop();
}
};
/* /*
* *
* Последовательность * Последовательность
@@ -116,10 +164,13 @@
загрузить ресурсы сцены загрузить ресурсы сцены
загрузить ресурсы колобка загрузить ресурсы колобка
создать сцену создать сцену
создать каркас и платформы создать группы сущностей
создать колобка создать колобка
создать столкновение колобка с каркасом и платформами определять столкновение колобка и врагов с группами сущностей
изменили управление изменили управление
переместить колобка переместить колобка
остановить врагов
столкновение с врагом
отключить столкновение с платформами
`); `);

View File

@@ -85,24 +85,24 @@
ширина: 65, ширина: 65,
}, },
{ {
x: 665, x: 666,
y: 340, y: 340,
ширина: 1, ширина: 3,
}, },
{ {
x: 770, x: 771,
y: 340, y: 340,
ширина: 1, ширина: 3,
}, },
{ {
x: 860, x: 862,
y: 340, y: 340,
ширина: 1, ширина: 3,
}, },
{ {
x: 1005, x: 995,
y: 355, y: 350, // НАДО 345, чтобы не допрыгиать без помощи кота.
ширина: 1, ширина: 4,
}, },
{ {
x: 620, x: 620,
@@ -130,7 +130,7 @@
var часть = п[номер]; var часть = п[номер];
var элемент = мир.платформы.create(часть.x, часть.y, "основа").setOrigin(0, 0); var элемент = мир.платформы.create(часть.x, часть.y, "основа").setOrigin(0, 0);
элемент.setScale(часть.ширина, 1).refreshBody(); элемент.setScale(часть.ширина, 1).refreshBody();
//элемент.setVisible(false); элемент.setVisible(false);
} }
}; };
@@ -148,6 +148,25 @@
}; };
// // // //
СоздатьВрагов = мир => {
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();
};
/* /*
* *
* Последовательность * Последовательность
@@ -163,5 +182,6 @@
создать полы и стены каркаса создать полы и стены каркаса
создать платформы создать платформы
позволить платформам пропускать прыжки позволить платформам пропускать прыжки
создать врагов
`); `);