K 0.6.0
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<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>
|
||||
<style>
|
||||
html, body {
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
{
|
||||
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
|
||||
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
|
||||
//мир.сцена.physics.add.collider(мир.враги, мир.каркас);
|
||||
//мир.сцена.physics.add.collider(мир.враги, мир.платформы);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -25,12 +25,13 @@
|
||||
|
||||
СоздатьКолобка = мир =>
|
||||
{
|
||||
мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
|
||||
//мир.колобок = мир.сцена.physics.add.sprite(1000, 500, "колобок");
|
||||
var x = 100;
|
||||
var x = 1300;
|
||||
мир.колобок = мир.сцена.physics.add.sprite(x, 500, "колобок");
|
||||
мир.колобок.depth = 10;
|
||||
мир.колобок.body.setSize(50);
|
||||
// Портит анимацию прыжков!
|
||||
//мир.колобок.setBounceY(0.1);
|
||||
// мир.колобок.setBounceY(0.1);
|
||||
|
||||
// Следить за колобком камерой.
|
||||
const камера = мир.сцена.cameras.main;
|
||||
@@ -41,6 +42,8 @@
|
||||
мигание: { },
|
||||
прыгучесть: -570,
|
||||
коэффициентПрыгучести: 1,
|
||||
прыжок: false,
|
||||
скоростьПадения: 0,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -111,11 +114,12 @@
|
||||
}
|
||||
мир.колобок.setVelocityX(x);
|
||||
|
||||
if (мир.управление.прыжок && мир.колобок.body.touching.down)
|
||||
if (мир.управление.прыжок && !мир.состояниеКолобка.прыжок)
|
||||
{
|
||||
мир.состояниеКолобка.прыжок = true;
|
||||
var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести;
|
||||
мир.колобок.setVelocityY(скорость);
|
||||
мир.сцена.sound.play("прыжок");
|
||||
мир.уведомить("колобок начал прыжок");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -123,6 +127,38 @@
|
||||
// // // //
|
||||
|
||||
|
||||
ВоспроизвестиЗвукПрыжка = мир =>
|
||||
{
|
||||
мир.сцена.sound.play("прыжок");
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ОпределитьОкончаниеПрыжкаКолобка = мир =>
|
||||
{
|
||||
if (!мир.состояниеКолобка.прыжок)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var скоростьПадения = мир.колобок.body.velocity.y;
|
||||
if (
|
||||
(мир.состояниеКолобка.скоростьПадения > 40) &&
|
||||
(скоростьПадения == 0) &&
|
||||
мир.колобок.body.touching.down
|
||||
) {
|
||||
мир.состояниеКолобка.прыжок = false;
|
||||
мир.уведомить("колобок закончил прыжок");
|
||||
}
|
||||
мир.состояниеКолобка.скоростьПадения = скоростьПадения;
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
АнимироватьКолобка = мир =>
|
||||
{
|
||||
var есть = "";
|
||||
@@ -132,7 +168,7 @@
|
||||
}
|
||||
|
||||
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("звук-зарядки", "ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav");
|
||||
|
||||
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
||||
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
|
||||
@@ -17,6 +18,7 @@
|
||||
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
||||
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
||||
мир.сцена.load.image("самовар", "ресурсы/вещи/самовар.png");
|
||||
мир.сцена.load.image("стрела", "ресурсы/вещи/стрела.png");
|
||||
};
|
||||
|
||||
|
||||
@@ -128,11 +130,13 @@
|
||||
y: 180,
|
||||
ширина: 12,
|
||||
},
|
||||
// Стол.
|
||||
{
|
||||
x: 1270,
|
||||
y: 427,
|
||||
ширина: 70,
|
||||
},
|
||||
// Окно.
|
||||
{
|
||||
x: 1690,
|
||||
y: 375,
|
||||
@@ -192,22 +196,6 @@
|
||||
низ: 550,
|
||||
верх: 270,
|
||||
},
|
||||
/*
|
||||
{
|
||||
x: 740,
|
||||
y: 445,
|
||||
скорость: 65,
|
||||
низ: 550,
|
||||
верх: 270,
|
||||
},
|
||||
{
|
||||
x: 830,
|
||||
y: 375,
|
||||
скорость: 80,
|
||||
низ: 550,
|
||||
верх: 270,
|
||||
},
|
||||
*/
|
||||
{
|
||||
x: 785,
|
||||
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/Czarcazas/sounds/330800/
|
||||
* 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