ソースを参照

K 0.6.0

master
コミット
6b9a20ffbf
8個のファイルの変更166行の追加25行の削除
  1. +1
    -1
      К/index.html
  2. +0
    -2
      К/игра/108.группы.js
  3. +61
    -6
      К/игра/110.колобок.js
  4. +103
    -16
      К/игра/111.изба.js
  5. バイナリ
      К/ресурсы/вещи/стрела.png
  6. バイナリ
      К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav
  7. +1
    -0
      К/ресурсы/звуки/README.md
  8. バイナリ
      К/ресурсы/сцены/изба.jpg

+ 1
- 1
К/index.html ファイルの表示

@@ -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 ファイルの表示

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




+ 61
- 6
К/игра/110.колобок.js ファイルの表示

@@ -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 ファイルの表示

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


バイナリ
К/ресурсы/вещи/стрела.png ファイルの表示

変更前 変更後
幅: 368  |  高さ: 59  |  サイズ: 23KB

バイナリ
К/ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.wav ファイルの表示


+ 1
- 0
К/ресурсы/звуки/README.md ファイルの表示

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

バイナリ
К/ресурсы/сцены/изба.jpg ファイルの表示

変更前 変更後
幅: 2000  |  高さ: 600  |  サイズ: 110KB 幅: 2000  |  高さ: 600  |  サイズ: 112KB

読み込み中…
キャンセル
保存