rodič
revize
6b9a20ffbf
8 změnil soubory, kde provedl 166 přidání a 25 odebrání
  1. +1
    -1
      К/index.html
  2. +0
    -2
      К/игра/108.группы.js
  3. +61
    -6
      К/игра/110.колобок.js
  4. +103
    -16
      К/игра/111.изба.js
  5. binární
      К/ресурсы/вещи/стрела.png
  6. binární
      К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav
  7. +1
    -0
      К/ресурсы/звуки/README.md
  8. binární
      К/ресурсы/сцены/изба.jpg

+ 1
- 1
К/index.html Zobrazit soubor

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


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

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




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

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


+ 103
- 16
К/игра/111.изба.js Zobrazit soubor

@@ -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ární
К/ресурсы/вещи/стрела.png Zobrazit soubor

Před Za
Šířka: 368  |  Výška: 59  |  Velikost: 23KB

binární
К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav Zobrazit soubor


+ 1
- 0
К/ресурсы/звуки/README.md Zobrazit soubor

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

binární
К/ресурсы/сцены/изба.jpg Zobrazit soubor

Před Za
Šířka: 2000  |  Výška: 600  |  Velikost: 110KB Šířka: 2000  |  Výška: 600  |  Velikost: 112KB

Načítá se…
Zrušit
Uložit