K 0.7.0
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||||
<title>К 0.6.0</title>
|
<title>К 0.7.0</title>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/phaser@3.54.0/dist/phaser.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/phaser@3.54.0/dist/phaser.min.js"></script>
|
||||||
<style>
|
<style>
|
||||||
html, body {
|
html, body {
|
||||||
|
|||||||
@@ -26,8 +26,10 @@
|
|||||||
СоздатьКолобка = мир =>
|
СоздатьКолобка = мир =>
|
||||||
{
|
{
|
||||||
var x = 100;
|
var x = 100;
|
||||||
//var x = 1300;
|
var y = 500;
|
||||||
мир.колобок = мир.сцена.physics.add.sprite(x, 500, "колобок");
|
//var x = 1500;
|
||||||
|
//var y = 200;
|
||||||
|
мир.колобок = мир.сцена.physics.add.sprite(x, y, "колобок");
|
||||||
мир.колобок.depth = 10;
|
мир.колобок.depth = 10;
|
||||||
мир.колобок.body.setSize(50);
|
мир.колобок.body.setSize(50);
|
||||||
// Портит анимацию прыжков!
|
// Портит анимацию прыжков!
|
||||||
@@ -228,7 +230,7 @@
|
|||||||
НачатьМиганиеКолобка = мир =>
|
НачатьМиганиеКолобка = мир =>
|
||||||
{
|
{
|
||||||
var конец = new Date();
|
var конец = new Date();
|
||||||
конец.setSeconds(конец.getSeconds() + 8);
|
конец.setSeconds(конец.getSeconds() + 6);
|
||||||
мир.состояниеКолобка.мигание.окончание = конец;
|
мир.состояниеКолобка.мигание.окончание = конец;
|
||||||
|
|
||||||
var звук = мир.сцена.sound.get("повреждение");
|
var звук = мир.сцена.sound.get("повреждение");
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
{
|
{
|
||||||
мир.сцена.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.audio("выломали-окно", "ресурсы/звуки/448004__kneeling__break-window.mp3");
|
||||||
|
|
||||||
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
||||||
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
|
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
|
||||||
@@ -19,6 +22,8 @@
|
|||||||
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
||||||
мир.сцена.load.image("самовар", "ресурсы/вещи/самовар.png");
|
мир.сцена.load.image("самовар", "ресурсы/вещи/самовар.png");
|
||||||
мир.сцена.load.image("стрела", "ресурсы/вещи/стрела.png");
|
мир.сцена.load.image("стрела", "ресурсы/вещи/стрела.png");
|
||||||
|
мир.сцена.load.image("окно-разбито", "ресурсы/вещи/окно_разбитая-часть.png");
|
||||||
|
мир.сцена.load.image("окно-выломано", "ресурсы/вещи/окно_дыра.png");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -30,6 +35,14 @@
|
|||||||
мир.сцена.sound.play("звук-избы", { loop: true });
|
мир.сцена.sound.play("звук-избы", { loop: true });
|
||||||
|
|
||||||
мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);
|
мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);
|
||||||
|
|
||||||
|
мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито");
|
||||||
|
мир.разбитоеОкно.setOrigin(0, 0).setScale(0.75, 0.75);
|
||||||
|
мир.разбитоеОкно.setVisible(false);
|
||||||
|
|
||||||
|
мир.выломанноеОкно = мир.сцена.add.image(1660, 183, "окно-выломано");
|
||||||
|
мир.выломанноеОкно.setOrigin(0, 0).setScale(0.75, 0.75);
|
||||||
|
мир.выломанноеОкно.setVisible(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -213,7 +226,7 @@
|
|||||||
{
|
{
|
||||||
x: 1003,
|
x: 1003,
|
||||||
y: 250,
|
y: 250,
|
||||||
скорость: 55,
|
скорость: 40,
|
||||||
низ: 400,
|
низ: 400,
|
||||||
верх: 200,
|
верх: 200,
|
||||||
},
|
},
|
||||||
@@ -313,43 +326,84 @@
|
|||||||
|
|
||||||
СоздатьСтрелы = мир =>
|
СоздатьСтрелы = мир =>
|
||||||
{
|
{
|
||||||
мир.стрелаЗаряжена = false;
|
мир.пфСтрел = мир.сцена.physics.add.staticGroup();
|
||||||
|
var куча = мир.пфСтрел.create(1270, 405, "основа").setOrigin(0, 0);
|
||||||
|
куча.setScale(25, 2).refreshBody();
|
||||||
|
куча.body.checkCollision.down = false;
|
||||||
|
куча.setVisible(false);
|
||||||
|
|
||||||
// Кучка стрел.
|
мир.пфЛук = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0);
|
||||||
var группаСтрел = мир.сцена.physics.add.staticGroup();
|
мир.пфЛук.body.checkCollision.down = false;
|
||||||
var стрелы = группаСтрел.create(1270, 405, "основа").setOrigin(0, 0);
|
мир.пфЛук.setVisible(false);
|
||||||
стрелы.setScale(25, 2).refreshBody();
|
|
||||||
стрелы.body.checkCollision.down = false;
|
var пуск = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0);
|
||||||
стрелы.setVisible(false);
|
пуск.setVisible(false);
|
||||||
var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы);
|
|
||||||
столкновение.collideCallback = function(a, b) {
|
мир.пфОкно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0);
|
||||||
мир.состояниеКолобка.прыжокПоСтрелам = true;
|
мир.пфОкно.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;
|
||||||
|
};
|
||||||
|
|
||||||
// Стрела в луку.
|
|
||||||
мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
|
|
||||||
мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody();
|
|
||||||
мир.стрелаКЛуку.depth = 15;
|
|
||||||
|
|
||||||
// Учитываем платформы.
|
// // // //
|
||||||
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас);
|
|
||||||
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.платформы);
|
|
||||||
|
|
||||||
// Платформа для стрелы у лука, чтобы стрела оставалась в луке.
|
|
||||||
var платформы = мир.сцена.physics.add.staticGroup();
|
СоздатьСтрелу = мир =>
|
||||||
var платформаЛука = платформы.create(1280, 200, "основа").setOrigin(0, 0);
|
{
|
||||||
платформаЛука.body.checkCollision.down = false;
|
мир.стрелаЗаряжена = false;
|
||||||
var столкновениеЛука = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаЛука);
|
мир.пускСтрелы = false;
|
||||||
платформаЛука.setVisible(false);
|
|
||||||
|
мир.стрела = мир.сцена.physics.add.sprite(1250, 397, "стрела").setOrigin(0, 0);
|
||||||
|
мир.стрела.setScale(0.5, 0.5).refreshBody();
|
||||||
|
мир.стрела.depth = 5;
|
||||||
|
|
||||||
|
мир.сцена.physics.add.collider(мир.стрела, мир.каркас);
|
||||||
|
мир.сцена.physics.add.collider(мир.стрела, мир.платформы);
|
||||||
|
|
||||||
// Определение заряда стрелы.
|
// Определение заряда стрелы.
|
||||||
столкновениеЛука.collideCallback = function заряд(a, b) {
|
var стЛук = мир.сцена.physics.add.collider(мир.стрела, мир.пфЛук);
|
||||||
if (мир.стрелаКЛуку.body.touching.down && !мир.стрелаЗаряжена)
|
стЛук.collideCallback = function заряд(a, b) {
|
||||||
|
if (мир.стрела.body.touching.down && !мир.стрелаЗаряжена)
|
||||||
{
|
{
|
||||||
мир.стрелаЗаряжена = true;
|
мир.стрелаЗаряжена = true;
|
||||||
мир.уведомить("стрела заряжена");
|
мир.уведомить("стрела заряжена");
|
||||||
|
console.debug("стрела заряжена");
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
|
// Определение столкновения с окном.
|
||||||
|
var стОкно = мир.сцена.physics.add.collider(мир.стрела, мир.пфОкно);
|
||||||
|
стОкно.collideCallback = function(a, b) {
|
||||||
|
if (мир.стрелаЗаряжена && мир.пускСтрелы)
|
||||||
|
{
|
||||||
|
мир.стрелаЗаряжена = false;
|
||||||
|
мир.пускСтрелы = false;
|
||||||
|
мир.уведомить("удар стрелы об окно");
|
||||||
|
console.debug("удар стрелы об окно");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
console.debug("стрела.x", мир.стрела.x);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -380,12 +434,12 @@
|
|||||||
|
|
||||||
ПодкидыватьСтрелуКЛуку = мир =>
|
ПодкидыватьСтрелуКЛуку = мир =>
|
||||||
{
|
{
|
||||||
if (!мир.стрелаКЛуку.body.touching.down || мир.стрелаЗаряжена)
|
if (!мир.стрела.body.touching.down || мир.стрелаЗаряжена)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
|
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
|
||||||
мир.стрелаКЛуку.setVelocityY(-скорость);
|
мир.стрела.setVelocityY(-скорость);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -398,6 +452,93 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВоспроизвестиЗвукПускаСтрелы = мир =>
|
||||||
|
{
|
||||||
|
мир.сцена.sound.play("пуск-стрелы");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ПуститьСтрелу = мир =>
|
||||||
|
{
|
||||||
|
мир.стрела.setVelocityX(1200);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВоспроизвестиЗвукУдараСтрелыОбОкно = мир =>
|
||||||
|
{
|
||||||
|
мир.сцена.sound.play("удар-стрелы");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтобразитьРазбитоеОкно = мир =>
|
||||||
|
{
|
||||||
|
мир.разбитоеОкно.setVisible(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтобразитьВыломанноеОкно = мир =>
|
||||||
|
{
|
||||||
|
мир.разбитоеОкно.setVisible(false);
|
||||||
|
мир.выломанноеОкно.setVisible(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
УведомитьСразуПослеУдара = мир =>
|
||||||
|
{
|
||||||
|
setTimeout(
|
||||||
|
function() {
|
||||||
|
мир.уведомить("сразу после удара");
|
||||||
|
},
|
||||||
|
1
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ПодсчитатьУдарыСтрелыОбОкно = мир =>
|
||||||
|
{
|
||||||
|
if (!мир.ударовСтрелыОбОкно)
|
||||||
|
{
|
||||||
|
мир.ударовСтрелыОбОкно = 1;
|
||||||
|
мир.уведомить("первый удар стрелы об окно");
|
||||||
|
}
|
||||||
|
else if (мир.ударовСтрелыОбОкно == 1)
|
||||||
|
{
|
||||||
|
мир.ударовСтрелыОбОкно = 2;
|
||||||
|
мир.уведомить("второй удар стрелы об окно");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВоспроизвестиЗвукВыломанногоОкна = мир =>
|
||||||
|
{
|
||||||
|
мир.сцена.sound.play("выломали-окно");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Последовательность
|
* Последовательность
|
||||||
@@ -417,6 +558,7 @@
|
|||||||
создать пауков
|
создать пауков
|
||||||
создать мышей
|
создать мышей
|
||||||
создать стрелы
|
создать стрелы
|
||||||
|
создать стрелу
|
||||||
обновить сцену
|
обновить сцену
|
||||||
анимировать пауков
|
анимировать пауков
|
||||||
анимировать мышей
|
анимировать мышей
|
||||||
@@ -428,5 +570,19 @@
|
|||||||
подкидывать стрелу к луку
|
подкидывать стрелу к луку
|
||||||
стрела заряжена
|
стрела заряжена
|
||||||
воспроизвести звук зарядки стрелы
|
воспроизвести звук зарядки стрелы
|
||||||
|
пуск стрелы
|
||||||
|
воспроизвести звук пуска стрелы
|
||||||
|
пустить стрелу
|
||||||
|
удар стрелы об окно
|
||||||
|
воспроизвести звук удара стрелы об окно
|
||||||
|
уведомить сразу после удара
|
||||||
|
подсчитать удары стрелы об окно
|
||||||
|
первый удар стрелы об окно
|
||||||
|
отобразить разбитое окно
|
||||||
|
второй удар стрелы об окно
|
||||||
|
отобразить выломанное окно
|
||||||
|
воспроизвести звук выломанного окна
|
||||||
|
сразу после удара
|
||||||
|
создать стрелу
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
|||||||
BIN
К/ресурсы/вещи/окно_дыра.png
Normal file
BIN
К/ресурсы/вещи/окно_дыра.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
К/ресурсы/вещи/окно_разбитая-часть.png
Normal file
BIN
К/ресурсы/вещи/окно_разбитая-часть.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
Reference in New Issue
Block a user