зарядка

This commit is contained in:
2021-04-30 15:11:11 +03:00
parent 14d641be33
commit 98993eddc3
6 changed files with 43 additions and 7 deletions

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

View File

@@ -13,7 +13,6 @@
мир.каркас = мир.сцена.physics.add.staticGroup(); мир.каркас = мир.сцена.physics.add.staticGroup();
мир.платформы = мир.сцена.physics.add.staticGroup(); мир.платформы = мир.сцена.physics.add.staticGroup();
мир.вещи = мир.сцена.add.group(); мир.вещи = мир.сцена.add.group();
мир.духи = мир.сцена.add.group();
мир.враги = мир.сцена.physics.add.group({ allowGravity: false }); мир.враги = мир.сцена.physics.add.group({ allowGravity: false });
}; };
@@ -25,8 +24,6 @@
{ {
мир.сцена.physics.add.collider(мир.вещи, мир.каркас); мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
мир.сцена.physics.add.collider(мир.вещи, мир.платформы); мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
мир.сцена.physics.add.collider(мир.духи, мир.каркас);
мир.сцена.physics.add.collider(мир.духи, мир.платформы);
}; };

View File

@@ -341,8 +341,8 @@
колобок закончил прыжок колобок закончил прыжок
вывести окончание прыжка в консоль вывести окончание прыжка в консоль
начали мигать колобка начали мигать колобка
# отключить столкновение с платформами и вещами отключить столкновение с платформами и вещами
# уменьшить прыгучесть колобка уменьшить прыгучесть колобка
закончили мигать колобка закончили мигать колобка
включить столкновение с платформами и вещами включить столкновение с платформами и вещами
восстановить прыгучесть колобка восстановить прыгучесть колобка

View File

@@ -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");
@@ -312,11 +313,14 @@
СоздатьСтрелы = мир => СоздатьСтрелы = мир =>
{ {
мир.стрелаЗаряжена = false;
// Кучка стрел. // Кучка стрел.
var группаСтрел = мир.сцена.physics.add.staticGroup(); var группаСтрел = мир.сцена.physics.add.staticGroup();
var стрелы = группаСтрел.create(1270, 405, "основа").setOrigin(0, 0); var стрелы = группаСтрел.create(1270, 405, "основа").setOrigin(0, 0);
стрелы.setScale(25, 2).refreshBody(); стрелы.setScale(25, 2).refreshBody();
стрелы.body.checkCollision.down = false; стрелы.body.checkCollision.down = false;
стрелы.setVisible(false);
var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы); var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы);
столкновение.collideCallback = function(a, b) { столкновение.collideCallback = function(a, b) {
мир.состояниеКолобка.прыжокПоСтрелам = true; мир.состояниеКолобка.прыжокПоСтрелам = true;
@@ -326,7 +330,26 @@
мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0); мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody(); мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody();
мир.стрелаКЛуку.depth = 15; мир.стрелаКЛуку.depth = 15;
мир.духи.add(мир.стрелаКЛуку);
// Учитываем платформы.
мир.сцена.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;
мир.уведомить("стрела заряжена");
}
}
}; };
@@ -357,11 +380,24 @@
ПодкидыватьСтрелуКЛуку = мир => ПодкидыватьСтрелуКЛуку = мир =>
{ {
if (!мир.стрелаКЛуку.body.touching.down || мир.стрелаЗаряжена)
{
return;
}
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9; var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
мир.стрелаКЛуку.setVelocityY(-скорость); мир.стрелаКЛуку.setVelocityY(-скорость);
}; };
// // // //
ВоспроизвестиЗвукЗарядкиСтрелы = мир =>
{
мир.сцена.sound.play("звук-зарядки");
};
/* /*
* *
* Последовательность * Последовательность
@@ -390,5 +426,7 @@
проверить наличие прыжка по стрелам проверить наличие прыжка по стрелам
прыжок по платформе стрел прыжок по платформе стрел
подкидывать стрелу к луку подкидывать стрелу к луку
стрела заряжена
воспроизвести звук зарядки стрелы
`); `);

View File

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