Browse Source

K 0.7.0

master
parent
commit
09248b2bc8
5 changed files with 191 additions and 33 deletions
  1. +1
    -1
      К/index.html
  2. +5
    -3
      К/игра/110.колобок.js
  3. +185
    -29
      К/игра/111.изба.js
  4. BIN
      К/ресурсы/вещи/окно_дыра.png
  5. BIN
      К/ресурсы/вещи/окно_разбитая-часть.png

+ 1
- 1
К/index.html View File

@@ -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 {


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

@@ -26,8 +26,10 @@
СоздатьКолобка = мир => СоздатьКолобка = мир =>
{ {
var x = 100; var x = 100;
//var x = 1300;
мир.колобок = мир.сцена.physics.add.sprite(x, 500, "колобок");
var y = 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("повреждение");


+ 185
- 29
К/игра/111.изба.js View File

@@ -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);
мир.пфЛук.body.checkCollision.down = false;
мир.пфЛук.setVisible(false);

var пуск = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0);
пуск.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.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) {
мир.состояниеКолобка.прыжокПоСтрелам = true;
// Определение пуска стрелы.
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;
var столкновениеЛука = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаЛука);
платформаЛука.setVisible(false);

СоздатьСтрелу = мир =>
{
мир.стрелаЗаряжена = false;
мир.пускСтрелы = 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) {
if (мир.стрелаКЛуку.body.touching.down && !мир.стрелаЗаряжена)
var стЛук = мир.сцена.physics.add.collider(мир.стрела, мир.пфЛук);
стЛук.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 View File

Before After
Width: 291  |  Height: 283  |  Size: 24KB

BIN
К/ресурсы/вещи/окно_разбитая-часть.png View File

Before After
Width: 291  |  Height: 283  |  Size: 36KB

Loading…
Cancel
Save