пф/ст

This commit is contained in:
2021-05-03 17:14:21 +03:00
parent 691f8545cf
commit 9d3f3466a0

View File

@@ -317,66 +317,63 @@
СоздатьСтрелы = мир => СоздатьСтрелы = мир =>
{ {
мир.стрелаЗаряжена = false; мир.пфСтрел = мир.сцена.physics.add.staticGroup();
мир.пускСтрелы = false; // Куча стрел.
var куча = мир.пфСтрел.create(1270, 405, "основа").setOrigin(0, 0);
// Кучка стрел. куча.setScale(25, 2).refreshBody();
var группаСтрел = мир.сцена.physics.add.staticGroup(); куча.body.checkCollision.down = false;
var стрелы = группаСтрел.create(1270, 405, "основа").setOrigin(0, 0); куча.setVisible(false);
стрелы.setScale(25, 2).refreshBody(); мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) {
стрелы.body.checkCollision.down = false;
стрелы.setVisible(false);
var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы);
столкновение.collideCallback = function(a, b) {
if (мир.колобок.body.touching.down) { if (мир.колобок.body.touching.down) {
мир.состояниеКолобка.прыжокПоСтрелам = true; мир.состояниеКолобка.прыжокПоСтрелам = true;
} }
}; });
// Стрела к луку. мир.стрелаЗаряжена = false;
мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0); мир.пускСтрелы = false;
мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody();
мир.стрелаКЛуку.depth = 5;
// Стрела лука.
мир.стрелаЛука = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
мир.стрелаЛука.setScale(0.5, 0.5).refreshBody();
мир.стрелаЛука.depth = 5;
// Учитываем платформы. // Учитываем платформы.
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас); мир.сцена.physics.add.collider(мир.стрелаЛука, мир.каркас);
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.платформы); мир.сцена.physics.add.collider(мир.стрелаЛука, мир.платформы);
// Платформа для стрелы у лука, чтобы стрела оставалась в луке. // Платформа для стрелы лука, чтобы оставаться в луке.
var платформы = мир.сцена.physics.add.staticGroup(); var пфЛука = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0);
var платформаЛука = платформы.create(1280, 200, "основа").setOrigin(0, 0); пфЛука.body.checkCollision.down = false;
платформаЛука.body.checkCollision.down = false; пфЛука.setVisible(false);
var столкновениеЛука = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаЛука); var стЛука = мир.сцена.physics.add.collider(мир.стрелаЛука, пфЛука);
платформаЛука.setVisible(false);
// Определение заряда стрелы. // Определение заряда стрелы.
столкновениеЛука.collideCallback = function заряд(a, b) { стЛука.collideCallback = function заряд(a, b) {
if (мир.стрелаКЛуку.body.touching.down && !мир.стрелаЗаряжена) if (мир.стрелаЛука.body.touching.down && !мир.стрелаЗаряжена)
{ {
мир.стрелаЗаряжена = true; мир.стрелаЗаряжена = true;
мир.уведомить("стрела заряжена"); мир.уведомить("стрела заряжена");
} }
}; };
// Определение пересечения с заряженной стрелой. // Определение пуска стрелы.
var платформаРазряда = платформы.create(1270, 160, "основа").setOrigin(0, 0); var пфПуска = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0);
платформаРазряда.setVisible(false); пфПуска.setVisible(false);
var разряд = мир.сцена.physics.add.collider(платформаРазряда, мир.колобок); var стПуска = мир.сцена.physics.add.collider(пфПуска, мир.колобок);
разряд.collideCallback = function(a, b) { стПуска.collideCallback = function(a, b) {
if (мир.стрелаЗаряжена && !мир.пускСтрелы) if (мир.стрелаЗаряжена && !мир.пускСтрелы)
{ {
мир.пускСтрелы = true; мир.пускСтрелы = true;
мир.уведомить("пуск стрелы"); мир.уведомить("пуск стрелы");
} }
}; };
разряд.overlapOnly = true; стПуска.overlapOnly = true;
// Платформа для стрелы у окна, чтобы стрела не летела дальше. // Платформа для стрелы у окна, чтобы стрела не летела дальше.
var платформаОкна = платформы.create(1830, 200, "основа").setOrigin(0, 0); var пфОкна = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0);
платформаОкна.setScale(1, 20).refreshBody(); пфОкна.setScale(1, 20).refreshBody();
var ударОбОкно = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаОкна); var стОкна = мир.сцена.physics.add.collider(мир.стрелаЛука, пфОкна);
платформаОкна.setVisible(false); пфОкна.setVisible(false);
ударОбОкно.collideCallback = function(a, b) { стОкна.collideCallback = function(a, b) {
if (мир.стрелаЗаряжена && мир.пускСтрелы) if (мир.стрелаЗаряжена && мир.пускСтрелы)
{ {
мир.стрелаЗаряжена = false; мир.стрелаЗаряжена = false;
@@ -414,12 +411,12 @@
ПодкидыватьСтрелуКЛуку = мир => ПодкидыватьСтрелуКЛуку = мир =>
{ {
if (!мир.стрелаКЛуку.body.touching.down || мир.стрелаЗаряжена) if (!мир.стрелаЛука.body.touching.down || мир.стрелаЗаряжена)
{ {
return; return;
} }
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9; var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
мир.стрелаКЛуку.setVelocityY(-скорость); мир.стрелаЛука.setVelocityY(-скорость);
}; };
@@ -446,7 +443,7 @@
ПуститьСтрелу = мир => ПуститьСтрелу = мир =>
{ {
мир.стрелаКЛуку.setVelocityX(1200); мир.стрелаЛука.setVelocityX(1200);
}; };