|
|
@@ -9,6 +9,8 @@ |
|
|
|
{ |
|
|
|
мир.сцена.load.audio("звук-избы", "ресурсы/звуки/387922__setuniman__scheming-1o95.mp3"); |
|
|
|
мир.сцена.load.audio("звук-зарядки", "ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav"); |
|
|
|
мир.сцена.load.audio("пуск-стрелы", "ресурсы/звуки/521552__omerbhatti34__arrow-impact.mp3"); |
|
|
|
мир.сцена.load.audio("удар-стрелы", "ресурсы/звуки/330800__czarcazas__shattering-glass-small.mp3"); |
|
|
|
|
|
|
|
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg"); |
|
|
|
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png"); |
|
|
@@ -213,7 +215,7 @@ |
|
|
|
{ |
|
|
|
x: 1003, |
|
|
|
y: 250, |
|
|
|
скорость: 55, |
|
|
|
скорость: 40, |
|
|
|
низ: 400, |
|
|
|
верх: 200, |
|
|
|
}, |
|
|
@@ -314,6 +316,7 @@ |
|
|
|
СоздатьСтрелы = мир => |
|
|
|
{ |
|
|
|
мир.стрелаЗаряжена = false; |
|
|
|
мир.пускСтрелы = false; |
|
|
|
|
|
|
|
// Кучка стрел. |
|
|
|
var группаСтрел = мир.сцена.physics.add.staticGroup(); |
|
|
@@ -323,13 +326,15 @@ |
|
|
|
стрелы.setVisible(false); |
|
|
|
var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы); |
|
|
|
столкновение.collideCallback = function(a, b) { |
|
|
|
мир.состояниеКолобка.прыжокПоСтрелам = true; |
|
|
|
if (мир.колобок.body.touching.down) { |
|
|
|
мир.состояниеКолобка.прыжокПоСтрелам = true; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// Стрела в луку. |
|
|
|
// Стрела к луку. |
|
|
|
мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0); |
|
|
|
мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody(); |
|
|
|
мир.стрелаКЛуку.depth = 15; |
|
|
|
мир.стрелаКЛуку.depth = 5; |
|
|
|
|
|
|
|
// Учитываем платформы. |
|
|
|
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас); |
|
|
@@ -349,7 +354,32 @@ |
|
|
|
мир.стрелаЗаряжена = true; |
|
|
|
мир.уведомить("стрела заряжена"); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// Определение пересечения с заряженной стрелой. |
|
|
|
var разряд = мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.колобок); |
|
|
|
разряд.collideCallback = function(a, b) { |
|
|
|
if (мир.стрелаЗаряжена && !мир.пускСтрелы) |
|
|
|
{ |
|
|
|
мир.пускСтрелы = true; |
|
|
|
мир.уведомить("пуск стрелы"); |
|
|
|
} |
|
|
|
}; |
|
|
|
разряд.overlapOnly = true; |
|
|
|
|
|
|
|
// Платформа для стрелы у окна, чтобы стрела не летела дальше. |
|
|
|
var платформаОкна = платформы.create(1830, 200, "основа").setOrigin(0, 0); |
|
|
|
платформаОкна.setScale(1, 20).refreshBody(); |
|
|
|
var ударОбОкно = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаОкна); |
|
|
|
платформаОкна.setVisible(false); |
|
|
|
ударОбОкно.collideCallback = function(a, b) { |
|
|
|
if (мир.стрелаЗаряжена && мир.пускСтрелы) |
|
|
|
{ |
|
|
|
мир.стрелаЗаряжена = false; |
|
|
|
мир.пускСтрелы = false; |
|
|
|
мир.уведомить("удар стрелы об окно"); |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -398,6 +428,33 @@ |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ВоспроизвестиЗвукПускаСтрелы = мир => |
|
|
|
{ |
|
|
|
мир.сцена.sound.play("пуск-стрелы"); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПуститьСтрелу = мир => |
|
|
|
{ |
|
|
|
мир.стрелаКЛуку.setVelocityX(1200); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ВоспроизвестиЗвукУдараСтрелыОбОкно = мир => |
|
|
|
{ |
|
|
|
мир.сцена.sound.play("удар-стрелы"); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
* |
|
|
|
* Последовательность |
|
|
@@ -428,5 +485,10 @@ |
|
|
|
подкидывать стрелу к луку |
|
|
|
стрела заряжена |
|
|
|
воспроизвести звук зарядки стрелы |
|
|
|
пуск стрелы |
|
|
|
воспроизвести звук пуска стрелы |
|
|
|
пустить стрелу |
|
|
|
удар стрелы об окно |
|
|
|
воспроизвести звук удара стрелы об окно |
|
|
|
`); |
|
|
|
|