Browse Source

переиначить

master
parent
commit
7c84491a31
4 changed files with 61 additions and 45 deletions
  1. +2
    -1
      index.html
  2. +44
    -0
      игра/108.группы.js
  3. +11
    -34
      игра/110.колобок.js
  4. +4
    -10
      игра/111.изба.js

+ 2
- 1
index.html View File

@@ -2,7 +2,7 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>К 0.2.0</title>
<title>К 0.3.0</title>
<script src="https://cdn.jsdelivr.net/npm/phaser@3.54.0/dist/phaser.min.js"></script>
<style>
html, body {
@@ -27,6 +27,7 @@
<div id="родитель"></div>
<script src="игра/001.мир.js"></script>
<script src="игра/011.phaser.js"></script>
<script src="игра/108.группы.js"></script>
<script src="игра/109.управление.js"></script>
<script src="игра/110.колобок.js"></script>
<script src="игра/111.изба.js"></script>


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

@@ -0,0 +1,44 @@
/*
*
* Реакции
*
*/


// // // //


СоздатьГруппыСущностей = мир =>
{
мир.каркас = мир.сцена.physics.add.staticGroup();
мир.платформы = мир.сцена.physics.add.staticGroup();
мир.вещи = мир.сцена.add.group();
мир.враги = мир.сцена.add.group();
};


// // // //


НастроитьСтолкновениеГруппСущностей = мир =>
{
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
мир.сцена.physics.add.collider(мир.враги, мир.каркас);
мир.сцена.physics.add.collider(мир.враги, мир.платформы);
};


/*
*
* Последовательность
*
*/


мир.разобрать(`
создать сцену
создать группы сущностей
настроить столкновение групп сущностей
`);


+ 11
- 34
игра/110.колобок.js View File

@@ -21,23 +21,12 @@
// // // //


СоздатьГруппыСущностей = мир =>
{
мир.каркас = мир.сцена.physics.add.staticGroup();
мир.платформы = мир.сцена.physics.add.staticGroup();
мир.враги = мир.сцена.add.group();
};


// // // //


СоздатьКолобка = мир =>
{
мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
мир.колобок.depth = 10;
мир.колобок.body.setSize(50);
// портит логику анимации.
// Портит анимацию прыжков!
//мир.колобок.setBounceY(0.1);

// Следить за колобком камерой.
@@ -74,26 +63,15 @@
// // // //


ОпределятьСтолкновениеКолобкаИВраговСГруппамиСущностей = мир =>
НастроитьСтолкновениеКолобка = мир =>
{
мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);


мир.сцена.physics.add.collider(мир.враги, мир.каркас);
мир.сцена.physics.add.collider(мир.враги, мир.платформы);

var враг = мир.сцена.physics.add.sprite(750, 100, "основа");
враг.setScale(5, 5).refreshBody();
враг.depth = 10;
мир.враги.add(враг);


var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
столкновениеВраги.overlapOnly = true;
столкновениеВраги.collideCallback = function(a, b) {
мир.уведомить("столкновение с врагом");
console.debug("столкновение с врагом");
};
};

@@ -157,7 +135,7 @@


ОтключитьСтолкновениеСПлатформами = мир => {
мир.столкновениеПлатформы.active = false;
мир.столкновениеПлатформы.active = false;
};


@@ -165,19 +143,19 @@


ВключитьСтолкновениеСПлатформами = мир => {
мир.столкновениеПлатформы.active = true;
мир.столкновениеПлатформы.active = true;
};


// // // //


ОстановитьВрагов = мир => {
var враги = мир.враги.getChildren();
for (var н in враги)
ОстановитьПередвижениеВещей = мир => {
var вещи = мир.вещи.getChildren();
for (var н in вещи)
{
var враг = враги[н];
враг.body.stop();
var вещь = вещи[н];
вещь.body.stop();
}
};

@@ -193,10 +171,9 @@
загрузить ресурсы сцены
загрузить ресурсы колобка
создать сцену
создать группы сущностей
создать колобка
создать анимации колобка
определять столкновение колобка и врагов с группами сущностей
настроить столкновение колобка
изменили управление
переместить колобка
столкновение с врагом
@@ -204,6 +181,6 @@
обновить сцену
анимировать колобка
изменили анимацию колобка
остановить врагов
остановить передвижение вещей
`);


+ 4
- 10
игра/111.изба.js View File

@@ -152,18 +152,12 @@


СоздатьВрагов = мир => {

console.debug("создать врагов");
/*
var враг = мир.сцена.physics.add.sprite(150, 100, "основа");
//мир.враги.add(враг);

мир.сцена.physics.add.collider(враг, мир.каркас);
мир.сцена.physics.add.collider(враг, мир.платформы);
*/

//var враг = мир.враги.create(100, 100, "основа");//.setOrigin(0, 0);
//враг.setScale(часть.ширина, 1).refreshBody();
var враг = мир.сцена.physics.add.sprite(750, 100, "основа");
враг.setScale(5, 5).refreshBody();
враг.depth = 10;
мир.враги.add(враг);
};




Loading…
Cancel
Save