K 0.4.0
This commit is contained in:
@@ -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.3.0</title>
|
<title>К 0.4.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 {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
мир.каркас = мир.сцена.physics.add.staticGroup();
|
мир.каркас = мир.сцена.physics.add.staticGroup();
|
||||||
мир.платформы = мир.сцена.physics.add.staticGroup();
|
мир.платформы = мир.сцена.physics.add.staticGroup();
|
||||||
мир.вещи = мир.сцена.add.group();
|
мир.вещи = мир.сцена.add.group();
|
||||||
мир.враги = мир.сцена.add.group();
|
мир.враги = мир.сцена.physics.add.group({ allowGravity: false });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -24,8 +24,8 @@
|
|||||||
{
|
{
|
||||||
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
|
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
|
||||||
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
|
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
|
||||||
мир.сцена.physics.add.collider(мир.враги, мир.каркас);
|
//мир.сцена.physics.add.collider(мир.враги, мир.каркас);
|
||||||
мир.сцена.physics.add.collider(мир.враги, мир.платформы);
|
//мир.сцена.physics.add.collider(мир.враги, мир.платформы);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
frameHeight: 94,
|
frameHeight: 94,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
мир.сцена.load.audio("прыжок", "ресурсы/звуки/331381__qubodup__public-domain-jump-sound.wav");
|
||||||
|
мир.сцена.load.audio("повреждение", "ресурсы/звуки/437650__dersuperanton__getting-hit-damage-scream.wav");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -32,6 +34,13 @@
|
|||||||
// Следить за колобком камерой.
|
// Следить за колобком камерой.
|
||||||
const камера = мир.сцена.cameras.main;
|
const камера = мир.сцена.cameras.main;
|
||||||
камера.startFollow(мир.колобок, false, 0.1, 0.1);
|
камера.startFollow(мир.колобок, false, 0.1, 0.1);
|
||||||
|
|
||||||
|
мир.состояниеКолобка = {
|
||||||
|
мигать: false,
|
||||||
|
мигание: { },
|
||||||
|
прыгучесть: -570,
|
||||||
|
коэффициентПрыгучести: 1,
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -66,7 +75,7 @@
|
|||||||
НастроитьСтолкновениеКолобка = мир =>
|
НастроитьСтолкновениеКолобка = мир =>
|
||||||
{
|
{
|
||||||
мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
|
мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
|
||||||
мир.сцена.physics.add.collider(мир.колобок, мир.вещи);
|
мир.столкновениеВещи = мир.сцена.physics.add.collider(мир.колобок, мир.вещи);
|
||||||
мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);
|
мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);
|
||||||
|
|
||||||
var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
|
var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
|
||||||
@@ -103,7 +112,9 @@
|
|||||||
|
|
||||||
if (мир.управление.прыжок && мир.колобок.body.touching.down)
|
if (мир.управление.прыжок && мир.колобок.body.touching.down)
|
||||||
{
|
{
|
||||||
мир.колобок.setVelocityY(-570);
|
var скорость = мир.состояниеКолобка.прыгучесть * мир.состояниеКолобка.коэффициентПрыгучести;
|
||||||
|
мир.колобок.setVelocityY(скорость);
|
||||||
|
мир.сцена.sound.play("прыжок");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -111,7 +122,8 @@
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
АнимироватьКолобка = мир => {
|
АнимироватьКолобка = мир =>
|
||||||
|
{
|
||||||
var есть = "";
|
var есть = "";
|
||||||
if (мир.колобок.anims.currentAnim)
|
if (мир.колобок.anims.currentAnim)
|
||||||
{
|
{
|
||||||
@@ -139,32 +151,118 @@
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ОтключитьСтолкновениеСПлатформами = мир => {
|
ОтключитьСтолкновениеСПлатформамиИВещами = мир =>
|
||||||
|
{
|
||||||
мир.столкновениеПлатформы.active = false;
|
мир.столкновениеПлатформы.active = false;
|
||||||
|
мир.столкновениеВещи.active = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ВключитьСтолкновениеСПлатформами = мир => {
|
ВключитьСтолкновениеСПлатформамиИВещами = мир =>
|
||||||
|
{
|
||||||
мир.столкновениеПлатформы.active = true;
|
мир.столкновениеПлатформы.active = true;
|
||||||
|
мир.столкновениеВещи.active = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ОстановитьПередвижениеВещей = мир => {
|
ОстановитьПередвижениеВещей = мир =>
|
||||||
|
{
|
||||||
var вещи = мир.вещи.getChildren();
|
var вещи = мир.вещи.getChildren();
|
||||||
for (var н in вещи)
|
for (var н in вещи)
|
||||||
{
|
{
|
||||||
var вещь = вещи[н];
|
var вещь = вещи[н];
|
||||||
вещь.body.stop();
|
if (вещь.body.touching.down)
|
||||||
|
{
|
||||||
|
вещь.body.stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
НачатьМиганиеКолобка = мир =>
|
||||||
|
{
|
||||||
|
var конец = new Date();
|
||||||
|
конец.setSeconds(конец.getSeconds() + 8);
|
||||||
|
мир.состояниеКолобка.мигание.окончание = конец;
|
||||||
|
|
||||||
|
var звук = мир.сцена.sound.get("повреждение");
|
||||||
|
if (!звук || !звук.isPlaying)
|
||||||
|
{
|
||||||
|
мир.сцена.sound.play("повреждение");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (мир.состояниеКолобка.мигать)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
мир.состояниеКолобка.мигать = true;
|
||||||
|
мир.состояниеКолобка.мигание = {
|
||||||
|
шаг: 0.1,
|
||||||
|
цель: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
мир.уведомить("начали мигать колобка");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
МигатьКолобка = мир =>
|
||||||
|
{
|
||||||
|
if (!мир.состояниеКолобка.мигать)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var м = мир.состояниеКолобка.мигание;
|
||||||
|
var сейчас = new Date();
|
||||||
|
|
||||||
|
if (м.окончание - сейчас < 0)
|
||||||
|
{
|
||||||
|
мир.состояниеКолобка.мигать = false;
|
||||||
|
мир.колобок.alpha = 1;
|
||||||
|
мир.уведомить("закончили мигать колобка");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var к = (м.цель == 1) ? 1 : -1;
|
||||||
|
мир.колобок.alpha += к * м.шаг;
|
||||||
|
if ((мир.колобок.alpha <= 0) || (мир.колобок.alpha >= 1))
|
||||||
|
{
|
||||||
|
м.цель = к * -1;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
УменьшитьПрыгучестьКолобка = мир =>
|
||||||
|
{
|
||||||
|
мир.состояниеКолобка.коэффициентПрыгучести = 0.6;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВосстановитьПрыгучестьКолобка = мир =>
|
||||||
|
{
|
||||||
|
мир.состояниеКолобка.коэффициентПрыгучести = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Последовательность
|
* Последовательность
|
||||||
@@ -179,13 +277,18 @@
|
|||||||
создать колобка
|
создать колобка
|
||||||
создать анимации колобка
|
создать анимации колобка
|
||||||
настроить столкновение колобка
|
настроить столкновение колобка
|
||||||
изменили управление
|
|
||||||
переместить колобка
|
|
||||||
столкновение с врагом
|
столкновение с врагом
|
||||||
отключить столкновение с платформами
|
начать мигание колобка
|
||||||
обновить сцену
|
обновить сцену
|
||||||
|
переместить колобка
|
||||||
анимировать колобка
|
анимировать колобка
|
||||||
изменили анимацию колобка
|
мигать колобка
|
||||||
остановить передвижение вещей
|
остановить передвижение вещей
|
||||||
|
начали мигать колобка
|
||||||
|
отключить столкновение с платформами и вещами
|
||||||
|
уменьшить прыгучесть колобка
|
||||||
|
закончили мигать колобка
|
||||||
|
включить столкновение с платформами и вещами
|
||||||
|
восстановить прыгучесть колобка
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
ЗагрузитьРесурсыИзбы = мир =>
|
ЗагрузитьРесурсыИзбы = мир =>
|
||||||
{
|
{
|
||||||
мир.сцена.load.image("изба", "ресурсы/сцены/изба.jpg");
|
|
||||||
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
||||||
|
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
|
||||||
|
мир.сцена.load.image("изба", "ресурсы/сцены/изба.jpg");
|
||||||
мир.сцена.load.image("молоко", "ресурсы/вещи/банка_молока.png");
|
мир.сцена.load.image("молоко", "ресурсы/вещи/банка_молока.png");
|
||||||
|
мир.сцена.load.image("паук", "ресурсы/животные/паук.png");
|
||||||
|
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
||||||
|
мир.сцена.load.audio("звук-избы", "ресурсы/звуки/387922__setuniman__scheming-1o95.mp3");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -19,6 +23,7 @@
|
|||||||
СоздатьИзбу = мир =>
|
СоздатьИзбу = мир =>
|
||||||
{
|
{
|
||||||
мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);
|
мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);
|
||||||
|
мир.сцена.sound.play("звук-избы", { loop: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -152,22 +157,129 @@
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
СоздатьВрагов = мир => {
|
СоздатьВещи = мир =>
|
||||||
var враг = мир.сцена.physics.add.sprite(750, 100, "основа");
|
{
|
||||||
враг.setScale(5, 5).refreshBody();
|
var молоко = мир.сцена.physics.add.sprite(830, 430, "молоко");
|
||||||
враг.depth = 10;
|
молоко.setScale(0.5, 0.5).refreshBody();
|
||||||
мир.враги.add(враг);
|
молоко.depth = 5;
|
||||||
|
мир.вещи.add(молоко);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
СоздатьВещи = мир => {
|
СоздатьПауков = мир =>
|
||||||
var молоко = мир.сцена.physics.add.sprite(750, 400, "молоко");
|
{
|
||||||
молоко.setScale(0.5, 0.5).refreshBody();
|
мир.настройкиПауков = [
|
||||||
молоко.depth = 10;
|
{
|
||||||
мир.вещи.add(молоко);
|
x: 620,
|
||||||
|
y: 345,
|
||||||
|
скорость: 50,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 740,
|
||||||
|
y: 445,
|
||||||
|
скорость: 65,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 830,
|
||||||
|
y: 375,
|
||||||
|
скорость: 80,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 930,
|
||||||
|
y: 500,
|
||||||
|
скорость: 70,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
мир.пауки = [];
|
||||||
|
мир.нитиПауков = [];
|
||||||
|
for (var номер in мир.настройкиПауков)
|
||||||
|
{
|
||||||
|
var настройки = мир.настройкиПауков[номер];
|
||||||
|
var паук = мир.враги.create(настройки.x, настройки.y, "паук");
|
||||||
|
паук.body.setVelocityY(настройки.скорость);
|
||||||
|
паук.depth = 10;
|
||||||
|
мир.пауки.push(паук);
|
||||||
|
var нить = мир.сцена.add.image(настройки.x - 1, 245, "линия").setOrigin(0, 0);
|
||||||
|
нить.depth = паук.depth;
|
||||||
|
мир.нитиПауков.push(нить);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
АнимироватьПауков = мир =>
|
||||||
|
{
|
||||||
|
for (var номер in мир.пауки)
|
||||||
|
{
|
||||||
|
var паук = мир.пауки[номер];
|
||||||
|
var нить = мир.нитиПауков[номер];
|
||||||
|
var скорость = мир.настройкиПауков[номер].скорость;
|
||||||
|
нить.displayHeight = паук.y - нить.y - 5;
|
||||||
|
if (паук.y > 550)
|
||||||
|
{
|
||||||
|
паук.setVelocityY(-скорость);
|
||||||
|
} else if (паук.y < 270)
|
||||||
|
{
|
||||||
|
паук.setVelocityY(скорость);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СоздатьМышей = мир =>
|
||||||
|
{
|
||||||
|
мир.настройкиМышей= [
|
||||||
|
{
|
||||||
|
x: 350,
|
||||||
|
y: 575,
|
||||||
|
скорость: 290,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 740,
|
||||||
|
y: 575,
|
||||||
|
скорость: 375,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
мир.мыши = [];
|
||||||
|
for (var номер in мир.настройкиМышей)
|
||||||
|
{
|
||||||
|
var настройки = мир.настройкиМышей[номер];
|
||||||
|
var мышь = мир.враги.create(настройки.x, настройки.y, "мышь");
|
||||||
|
мышь.body.setVelocityX(настройки.скорость);
|
||||||
|
мышь.depth = 10;
|
||||||
|
мышь.flipX = true;
|
||||||
|
мир.мыши.push(мышь);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
АнимироватьМышей = мир =>
|
||||||
|
{
|
||||||
|
for (var номер in мир.мыши)
|
||||||
|
{
|
||||||
|
var мышь= мир.мыши[номер];
|
||||||
|
var скорость = мир.настройкиМышей[номер].скорость;
|
||||||
|
if (мышь.x > 1950)
|
||||||
|
{
|
||||||
|
мышь.setVelocityX(-скорость);
|
||||||
|
мышь.flipX = false;
|
||||||
|
} else if (мышь.x < 50)
|
||||||
|
{
|
||||||
|
мышь.setVelocityX(скорость);
|
||||||
|
мышь.flipX = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -186,7 +298,11 @@
|
|||||||
создать полы и стены каркаса
|
создать полы и стены каркаса
|
||||||
создать платформы
|
создать платформы
|
||||||
позволить платформам пропускать прыжки
|
позволить платформам пропускать прыжки
|
||||||
создать врагов
|
|
||||||
создать вещи
|
создать вещи
|
||||||
|
создать пауков
|
||||||
|
создать мышей
|
||||||
|
обновить сцену
|
||||||
|
анимировать пауков
|
||||||
|
анимировать мышей
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
|||||||
BIN
К/ресурсы/животные/мышь.png
Normal file
BIN
К/ресурсы/животные/мышь.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
BIN
К/ресурсы/животные/паук.png
Normal file
BIN
К/ресурсы/животные/паук.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
BIN
К/ресурсы/звуки/330800__czarcazas__shattering-glass-small.mp3
Normal file
BIN
К/ресурсы/звуки/330800__czarcazas__shattering-glass-small.mp3
Normal file
Binary file not shown.
BIN
К/ресурсы/звуки/331381__qubodup__public-domain-jump-sound.wav
Normal file
BIN
К/ресурсы/звуки/331381__qubodup__public-domain-jump-sound.wav
Normal file
Binary file not shown.
BIN
К/ресурсы/звуки/360432__davethetech__clink-bottle3.wav
Normal file
BIN
К/ресурсы/звуки/360432__davethetech__clink-bottle3.wav
Normal file
Binary file not shown.
BIN
К/ресурсы/звуки/387922__setuniman__scheming-1o95.mp3
Normal file
BIN
К/ресурсы/звуки/387922__setuniman__scheming-1o95.mp3
Normal file
Binary file not shown.
Binary file not shown.
BIN
К/ресурсы/звуки/448004__kneeling__break-window.mp3
Normal file
BIN
К/ресурсы/звуки/448004__kneeling__break-window.mp3
Normal file
Binary file not shown.
BIN
К/ресурсы/звуки/521552__omerbhatti34__arrow-impact.mp3
Normal file
BIN
К/ресурсы/звуки/521552__omerbhatti34__arrow-impact.mp3
Normal file
Binary file not shown.
BIN
К/ресурсы/звуки/555803__ddmyzik__sunset-loop.wav
Normal file
BIN
К/ресурсы/звуки/555803__ddmyzik__sunset-loop.wav
Normal file
Binary file not shown.
7
К/ресурсы/звуки/README.md
Normal file
7
К/ресурсы/звуки/README.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
* https://freesound.org/people/DDmyzik/sounds/555803/
|
||||||
|
* https://freesound.org/people/Setuniman/sounds/387922/
|
||||||
|
* https://freesound.org/people/qubodup/sounds/331381/
|
||||||
|
* https://freesound.org/people/davethetech/sounds/360432/
|
||||||
|
* https://freesound.org/people/omerbhatti34/sounds/521552/
|
||||||
|
* https://freesound.org/people/Czarcazas/sounds/330800/
|
||||||
|
* https://freesound.org/people/Kneeling/sounds/448004/
|
||||||
BIN
К/ресурсы/отладка/линия_вертикальная.png
Normal file
BIN
К/ресурсы/отладка/линия_вертикальная.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 573 B |
Reference in New Issue
Block a user