Browse Source

стрелять один раз

master
parent
commit
4c12242336
2 changed files with 71 additions and 9 deletions
  1. +4
    -4
      игра/110.колобок.js
  2. +67
    -5
      игра/111.изба.js

+ 4
- 4
игра/110.колобок.js View File

@@ -26,7 +26,7 @@
СоздатьКолобка = мир => СоздатьКолобка = мир =>
{ {
var x = 100; var x = 100;
//var x = 1300;
var x = 1300;
мир.колобок = мир.сцена.physics.add.sprite(x, 500, "колобок"); мир.колобок = мир.сцена.physics.add.sprite(x, 500, "колобок");
мир.колобок.depth = 10; мир.колобок.depth = 10;
мир.колобок.body.setSize(50); мир.колобок.body.setSize(50);
@@ -228,7 +228,7 @@
НачатьМиганиеКолобка = мир => НачатьМиганиеКолобка = мир =>
{ {
var конец = new Date(); var конец = new Date();
конец.setSeconds(конец.getSeconds() + 8);
конец.setSeconds(конец.getSeconds() + 6);
мир.состояниеКолобка.мигание.окончание = конец; мир.состояниеКолобка.мигание.окончание = конец;


var звук = мир.сцена.sound.get("повреждение"); var звук = мир.сцена.sound.get("повреждение");
@@ -341,8 +341,8 @@
колобок закончил прыжок колобок закончил прыжок
вывести окончание прыжка в консоль вывести окончание прыжка в консоль
начали мигать колобка начали мигать колобка
отключить столкновение с платформами и вещами
уменьшить прыгучесть колобка
# отключить столкновение с платформами и вещами
# уменьшить прыгучесть колобка
закончили мигать колобка закончили мигать колобка
включить столкновение с платформами и вещами включить столкновение с платформами и вещами
восстановить прыгучесть колобка восстановить прыгучесть колобка


+ 67
- 5
игра/111.изба.js View File

@@ -9,6 +9,8 @@
{ {
мир.сцена.load.audio("звук-избы", "ресурсы/звуки/387922__setuniman__scheming-1o95.mp3"); мир.сцена.load.audio("звук-избы", "ресурсы/звуки/387922__setuniman__scheming-1o95.mp3");
мир.сцена.load.audio("звук-зарядки", "ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav"); мир.сцена.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("основа", "ресурсы/отладка/основа.jpg");
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png"); мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
@@ -213,7 +215,7 @@
{ {
x: 1003, x: 1003,
y: 250, y: 250,
скорость: 55,
скорость: 40,
низ: 400, низ: 400,
верх: 200, верх: 200,
}, },
@@ -314,6 +316,7 @@
СоздатьСтрелы = мир => СоздатьСтрелы = мир =>
{ {
мир.стрелаЗаряжена = false; мир.стрелаЗаряжена = false;
мир.пускСтрелы = false;


// Кучка стрел. // Кучка стрел.
var группаСтрел = мир.сцена.physics.add.staticGroup(); var группаСтрел = мир.сцена.physics.add.staticGroup();
@@ -323,13 +326,15 @@
стрелы.setVisible(false); стрелы.setVisible(false);
var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы); var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы);
столкновение.collideCallback = function(a, b) { столкновение.collideCallback = function(a, b) {
мир.состояниеКолобка.прыжокПоСтрелам = true;
if (мир.колобок.body.touching.down) {
мир.состояниеКолобка.прыжокПоСтрелам = true;
}
}; };


// Стрела в луку.
// Стрела к луку.
мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0); мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody(); мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody();
мир.стрелаКЛуку.depth = 15;
мир.стрелаКЛуку.depth = 5;


// Учитываем платформы. // Учитываем платформы.
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас); мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас);
@@ -349,7 +354,32 @@
мир.стрелаЗаряжена = true; мир.стрелаЗаряжена = 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 @@
подкидывать стрелу к луку подкидывать стрелу к луку
стрела заряжена стрела заряжена
воспроизвести звук зарядки стрелы воспроизвести звук зарядки стрелы
пуск стрелы
воспроизвести звук пуска стрелы
пустить стрелу
удар стрелы об окно
воспроизвести звук удара стрелы об окно
`); `);



Loading…
Cancel
Save