Browse Source

K 0.6.0

master
parent
commit
6b9a20ffbf
8 changed files with 166 additions and 25 deletions
  1. +1
    -1
      К/index.html
  2. +0
    -2
      К/игра/108.группы.js
  3. +61
    -6
      К/игра/110.колобок.js
  4. +103
    -16
      К/игра/111.изба.js
  5. BIN
      К/ресурсы/вещи/стрела.png
  6. BIN
      К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav
  7. +1
    -0
      К/ресурсы/звуки/README.md
  8. BIN
      К/ресурсы/сцены/изба.jpg

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


+ 0
- 2
К/игра/108.группы.js View File

@@ -24,8 +24,6 @@
{ {
мир.сцена.physics.add.collider(мир.вещи, мир.каркас); мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
мир.сцена.physics.add.collider(мир.вещи, мир.платформы); мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
//мир.сцена.physics.add.collider(мир.враги, мир.каркас);
//мир.сцена.physics.add.collider(мир.враги, мир.платформы);
}; };






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

@@ -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; мир.колобок.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 @@
обновить сцену обновить сцену
переместить колобка переместить колобка
анимировать колобка анимировать колобка
определить окончание прыжка колобка
мигать колобка мигать колобка
остановить передвижение вещей остановить передвижение вещей
колобок начал прыжок
воспроизвести звук прыжка
вывести начало прыжка в консоль
колобок закончил прыжок
вывести окончание прыжка в консоль
начали мигать колобка начали мигать колобка
отключить столкновение с платформами и вещами отключить столкновение с платформами и вещами
уменьшить прыгучесть колобка уменьшить прыгучесть колобка


+ 103
- 16
К/игра/111.изба.js 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");
@@ -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 View File

Before After
Width: 368  |  Height: 59  |  Size: 23KB

BIN
К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav View File


+ 1
- 0
К/ресурсы/звуки/README.md 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/

BIN
К/ресурсы/сцены/изба.jpg View File

Before After
Width: 2000  |  Height: 600  |  Size: 110KB Width: 2000  |  Height: 600  |  Size: 112KB

Loading…
Cancel
Save