Переглянути джерело

допвыстрелы

master
Михаил Капелько 3 роки тому
джерело
коміт
19218fd328
1 змінених файлів з 55 додано та 22 видалено
  1. +55
    -22
      игра/111.изба.js

+ 55
- 22
игра/111.изба.js Переглянути файл

@@ -34,6 +34,10 @@
мир.сцена.sound.play("звук-избы", { loop: true });

мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);

мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито");
мир.разбитоеОкно.setOrigin(0, 0).setScale(0.75, 0.75);
мир.разбитоеОкно.setVisible(false);
};


@@ -323,30 +327,48 @@
куча.body.checkCollision.down = false;
куча.setVisible(false);

var лук = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0);
лук.body.checkCollision.down = false;
лук.setVisible(false);
мир.пфЛук = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0);
мир.пфЛук.body.checkCollision.down = false;
мир.пфЛук.setVisible(false);

var пуск = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0);
пуск.setVisible(false);

var окно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0);
окно.setScale(1, 20).refreshBody();
окно.setVisible(false);
мир.пфОкно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0);
мир.пфОкно.setScale(1, 20).refreshBody();
мир.пфОкно.setVisible(false);

// Определение прыжка по стрелам.
мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) {
if (мир.колобок.body.touching.down) {
мир.состояниеКолобка.прыжокПоСтрелам = true;
console.debug("прыжок по стрелам");
}
});

// Определение пуска стрелы.
var стПуск = мир.сцена.physics.add.collider(мир.колобок, пуск);
стПуск.collideCallback = function(a, b) {
if (мир.стрелаЗаряжена && !мир.пускСтрелы)
{
мир.пускСтрелы = true;
мир.уведомить("пуск стрелы");
console.debug("пуск стрелы");
}
};
стПуск.overlapOnly = true;
};


// // // //


СоздатьСтрелу = мир =>
{
мир.стрелаЗаряжена = false;
мир.пускСтрелы = false;

мир.стрела = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
мир.стрела = мир.сцена.physics.add.sprite(1250, 397, "стрела").setOrigin(0, 0);
мир.стрела.setScale(0.5, 0.5).refreshBody();
мир.стрела.depth = 5;

@@ -354,35 +376,29 @@
мир.сцена.physics.add.collider(мир.стрела, мир.платформы);

// Определение заряда стрелы.
var стЛук = мир.сцена.physics.add.collider(мир.стрела, лук);
var стЛук = мир.сцена.physics.add.collider(мир.стрела, мир.пфЛук);
стЛук.collideCallback = function заряд(a, b) {
if (мир.стрела.body.touching.down && !мир.стрелаЗаряжена)
{
мир.стрелаЗаряжена = true;
мир.уведомить("стрела заряжена");
console.debug("стрела заряжена");
}
};

// Определение пуска стрелы.
var стПуск = мир.сцена.physics.add.collider(пуск, мир.колобок);
стПуск.collideCallback = function(a, b) {
if (мир.стрелаЗаряжена && !мир.пускСтрелы)
{
мир.пускСтрелы = true;
мир.уведомить("пуск стрелы");
}
};
стПуск.overlapOnly = true;

var стОкно = мир.сцена.physics.add.collider(мир.стрела, окно);
// Определение столкновения с окном.
var стОкно = мир.сцена.physics.add.collider(мир.стрела, мир.пфОкно);
стОкно.collideCallback = function(a, b) {
if (мир.стрелаЗаряжена && мир.пускСтрелы)
{
мир.стрелаЗаряжена = false;
мир.пускСтрелы = false;
мир.уведомить("удар стрелы об окно");
console.debug("удар стрелы об окно");
}
};

console.debug("стрела.x", мир.стрела.x);
};


@@ -463,8 +479,21 @@

ОтобразитьРазбитоеОкно = мир =>
{
var окно = мир.сцена.add.image(1660, 183, "окно-разбито");
окно.setOrigin(0, 0).setScale(0.75, 0.75);
мир.разбитоеОкно.setVisible(true);
};


// // // //


УведомитьЧерезПолсекундыПослеУдара = мир =>
{
setTimeout(
function() {
мир.уведомить("через полсекунды после удара");
},
500
);
};


@@ -487,6 +516,7 @@
создать пауков
создать мышей
создать стрелы
создать стрелу
обновить сцену
анимировать пауков
анимировать мышей
@@ -504,5 +534,8 @@
удар стрелы об окно
воспроизвести звук удара стрелы об окно
отобразить разбитое окно
уведомить через полсекунды после удара
через полсекунды после удара
создать стрелу
`);


Завантаження…
Відмінити
Зберегти