K 0.6.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.5.0</title>
|
<title>К 0.6.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 {
|
||||||
|
|||||||
@@ -24,8 +24,6 @@
|
|||||||
{
|
{
|
||||||
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
|
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
|
||||||
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
|
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
|
||||||
//мир.сцена.physics.add.collider(мир.враги, мир.каркас);
|
|
||||||
//мир.сцена.physics.add.collider(мир.враги, мир.платформы);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,12 +25,13 @@
|
|||||||
|
|
||||||
СоздатьКолобка = мир =>
|
СоздатьКолобка = мир =>
|
||||||
{
|
{
|
||||||
мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
|
var x = 100;
|
||||||
//мир.колобок = мир.сцена.physics.add.sprite(1000, 500, "колобок");
|
var x = 1300;
|
||||||
|
мир.колобок = мир.сцена.physics.add.sprite(x, 500, "колобок");
|
||||||
мир.колобок.depth = 10;
|
мир.колобок.depth = 10;
|
||||||
мир.колобок.body.setSize(50);
|
мир.колобок.body.setSize(50);
|
||||||
// Портит анимацию прыжков!
|
// Портит анимацию прыжков!
|
||||||
//мир.колобок.setBounceY(0.1);
|
// мир.колобок.setBounceY(0.1);
|
||||||
|
|
||||||
// Следить за колобком камерой.
|
// Следить за колобком камерой.
|
||||||
const камера = мир.сцена.cameras.main;
|
const камера = мир.сцена.cameras.main;
|
||||||
@@ -41,6 +42,8 @@
|
|||||||
мигание: { },
|
мигание: { },
|
||||||
прыгучесть: -570,
|
прыгучесть: -570,
|
||||||
коэффициентПрыгучести: 1,
|
коэффициентПрыгучести: 1,
|
||||||
|
прыжок: false,
|
||||||
|
скоростьПадения: 0,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -111,11 +114,12 @@
|
|||||||
}
|
}
|
||||||
мир.колобок.setVelocityX(x);
|
мир.колобок.setVelocityX(x);
|
||||||
|
|
||||||
if (мир.управление.прыжок && мир.колобок.body.touching.down)
|
if (мир.управление.прыжок && !мир.состояниеКолобка.прыжок)
|
||||||
{
|
{
|
||||||
|
мир.состояниеКолобка.прыжок = true;
|
||||||
var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести;
|
var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести;
|
||||||
мир.колобок.setVelocityY(скорость);
|
мир.колобок.setVelocityY(скорость);
|
||||||
мир.сцена.sound.play("прыжок");
|
мир.уведомить("колобок начал прыжок");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -123,6 +127,38 @@
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВоспроизвестиЗвукПрыжка = мир =>
|
||||||
|
{
|
||||||
|
мир.сцена.sound.play("прыжок");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОпределитьОкончаниеПрыжкаКолобка = мир =>
|
||||||
|
{
|
||||||
|
if (!мир.состояниеКолобка.прыжок)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var скоростьПадения = мир.колобок.body.velocity.y;
|
||||||
|
if (
|
||||||
|
(мир.состояниеКолобка.скоростьПадения > 40) &&
|
||||||
|
(скоростьПадения == 0) &&
|
||||||
|
мир.колобок.body.touching.down
|
||||||
|
) {
|
||||||
|
мир.состояниеКолобка.прыжок = false;
|
||||||
|
мир.уведомить("колобок закончил прыжок");
|
||||||
|
}
|
||||||
|
мир.состояниеКолобка.скоростьПадения = скоростьПадения;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
АнимироватьКолобка = мир =>
|
АнимироватьКолобка = мир =>
|
||||||
{
|
{
|
||||||
var есть = "";
|
var есть = "";
|
||||||
@@ -132,7 +168,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var надо = "колобок-неподвижен";
|
var надо = "колобок-неподвижен";
|
||||||
if (мир.управление && мир.управление.прыжок && !мир.колобок.body.touching.down)
|
if (мир.состояниеКолобка.прыжок)
|
||||||
{
|
{
|
||||||
надо = "колобок-прыжок";
|
надо = "колобок-прыжок";
|
||||||
}
|
}
|
||||||
@@ -264,6 +300,19 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВывестиНачалоПрыжкаВКонсоль = мир =>
|
||||||
|
{
|
||||||
|
console.debug("начало прыжка");
|
||||||
|
};
|
||||||
|
ВывестиОкончаниеПрыжкаВКонсоль = мир =>
|
||||||
|
{
|
||||||
|
console.debug("окончание прыжка. скорость:", мир.состояниеКолобка.скоростьПадения);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Последовательность
|
* Последовательность
|
||||||
@@ -283,8 +332,14 @@
|
|||||||
обновить сцену
|
обновить сцену
|
||||||
переместить колобка
|
переместить колобка
|
||||||
анимировать колобка
|
анимировать колобка
|
||||||
|
определить окончание прыжка колобка
|
||||||
мигать колобка
|
мигать колобка
|
||||||
остановить передвижение вещей
|
остановить передвижение вещей
|
||||||
|
колобок начал прыжок
|
||||||
|
воспроизвести звук прыжка
|
||||||
|
вывести начало прыжка в консоль
|
||||||
|
колобок закончил прыжок
|
||||||
|
вывести окончание прыжка в консоль
|
||||||
начали мигать колобка
|
начали мигать колобка
|
||||||
отключить столкновение с платформами и вещами
|
отключить столкновение с платформами и вещами
|
||||||
уменьшить прыгучесть колобка
|
уменьшить прыгучесть колобка
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
ЗагрузитьРесурсыИзбы = мир =>
|
ЗагрузитьРесурсыИзбы = мир =>
|
||||||
{
|
{
|
||||||
мир.сцена.load.audio("звук-избы", "ресурсы/звуки/387922__setuniman__scheming-1o95.mp3");
|
мир.сцена.load.audio("звук-избы", "ресурсы/звуки/387922__setuniman__scheming-1o95.mp3");
|
||||||
|
мир.сцена.load.audio("звук-зарядки", "ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav");
|
||||||
|
|
||||||
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
||||||
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
|
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
|
||||||
@@ -17,6 +18,7 @@
|
|||||||
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
||||||
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
||||||
мир.сцена.load.image("самовар", "ресурсы/вещи/самовар.png");
|
мир.сцена.load.image("самовар", "ресурсы/вещи/самовар.png");
|
||||||
|
мир.сцена.load.image("стрела", "ресурсы/вещи/стрела.png");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -128,11 +130,13 @@
|
|||||||
y: 180,
|
y: 180,
|
||||||
ширина: 12,
|
ширина: 12,
|
||||||
},
|
},
|
||||||
|
// Стол.
|
||||||
{
|
{
|
||||||
x: 1270,
|
x: 1270,
|
||||||
y: 427,
|
y: 427,
|
||||||
ширина: 70,
|
ширина: 70,
|
||||||
},
|
},
|
||||||
|
// Окно.
|
||||||
{
|
{
|
||||||
x: 1690,
|
x: 1690,
|
||||||
y: 375,
|
y: 375,
|
||||||
@@ -192,22 +196,6 @@
|
|||||||
низ: 550,
|
низ: 550,
|
||||||
верх: 270,
|
верх: 270,
|
||||||
},
|
},
|
||||||
/*
|
|
||||||
{
|
|
||||||
x: 740,
|
|
||||||
y: 445,
|
|
||||||
скорость: 65,
|
|
||||||
низ: 550,
|
|
||||||
верх: 270,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
x: 830,
|
|
||||||
y: 375,
|
|
||||||
скорость: 80,
|
|
||||||
низ: 550,
|
|
||||||
верх: 270,
|
|
||||||
},
|
|
||||||
*/
|
|
||||||
{
|
{
|
||||||
x: 785,
|
x: 785,
|
||||||
y: 375,
|
y: 375,
|
||||||
@@ -320,6 +308,96 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СоздатьСтрелы = мир =>
|
||||||
|
{
|
||||||
|
мир.стрелаЗаряжена = false;
|
||||||
|
|
||||||
|
// Кучка стрел.
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Стрела в луку.
|
||||||
|
мир.стрелаКЛуку = мир.сцена.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);
|
||||||
|
|
||||||
|
// Определение заряда стрелы.
|
||||||
|
столкновениеЛука.collideCallback = function заряд(a, b) {
|
||||||
|
if (мир.стрелаКЛуку.body.touching.down && !мир.стрелаЗаряжена)
|
||||||
|
{
|
||||||
|
мир.стрелаЗаряжена = true;
|
||||||
|
мир.уведомить("стрела заряжена");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтследитьПрыжокПоСтрелам = мир =>
|
||||||
|
{
|
||||||
|
мир.состояниеКолобка.прыжокПоСтрелам = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ПроверитьНаличиеПрыжкаПоСтрелам = мир =>
|
||||||
|
{
|
||||||
|
if (!мир.состояниеКолобка.прыжокПоСтрелам)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
мир.уведомить("прыжок по платформе стрел");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ПодкидыватьСтрелуКЛуку = мир =>
|
||||||
|
{
|
||||||
|
if (!мир.стрелаКЛуку.body.touching.down || мир.стрелаЗаряжена)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
|
||||||
|
мир.стрелаКЛуку.setVelocityY(-скорость);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВоспроизвестиЗвукЗарядкиСтрелы = мир =>
|
||||||
|
{
|
||||||
|
мир.сцена.sound.play("звук-зарядки");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Последовательность
|
* Последовательность
|
||||||
@@ -338,8 +416,17 @@
|
|||||||
создать вещи
|
создать вещи
|
||||||
создать пауков
|
создать пауков
|
||||||
создать мышей
|
создать мышей
|
||||||
|
создать стрелы
|
||||||
обновить сцену
|
обновить сцену
|
||||||
анимировать пауков
|
анимировать пауков
|
||||||
анимировать мышей
|
анимировать мышей
|
||||||
|
колобок начал прыжок
|
||||||
|
отследить прыжок по стрелам
|
||||||
|
колобок закончил прыжок
|
||||||
|
проверить наличие прыжка по стрелам
|
||||||
|
прыжок по платформе стрел
|
||||||
|
подкидывать стрелу к луку
|
||||||
|
стрела заряжена
|
||||||
|
воспроизвести звук зарядки стрелы
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
|||||||
BIN
К/ресурсы/вещи/стрела.png
Normal file
BIN
К/ресурсы/вещи/стрела.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
BIN
К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav
Normal file
BIN
К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav
Normal file
Binary file not shown.
@@ -5,3 +5,4 @@
|
|||||||
* https://freesound.org/people/omerbhatti34/sounds/521552/
|
* https://freesound.org/people/omerbhatti34/sounds/521552/
|
||||||
* https://freesound.org/people/Czarcazas/sounds/330800/
|
* https://freesound.org/people/Czarcazas/sounds/330800/
|
||||||
* https://freesound.org/people/Kneeling/sounds/448004/
|
* https://freesound.org/people/Kneeling/sounds/448004/
|
||||||
|
* https://freesound.org/people/EminYILDIRIM/sounds/543927/
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 112 KiB |
Reference in New Issue
Block a user