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