Browse Source

функция структуры

master
parent
commit
065f96628d
3 changed files with 48 additions and 58 deletions
  1. +1
    -0
      index.html
  2. +45
    -0
      игра/100.структура.js
  3. +2
    -58
      игра/111.изба.js

+ 1
- 0
index.html View File

@@ -27,6 +27,7 @@
<div id="родитель"></div>
<script src="игра/001.мир.js"></script>
<script src="игра/011.phaser.js"></script>
<script src="игра/100.структура.js"></script>
<script src="игра/108.группы.js"></script>
<script src="игра/109.управление.js"></script>
<script src="игра/110.колобок.js"></script>


+ 45
- 0
игра/100.структура.js View File

@@ -0,0 +1,45 @@
function создатьУзлыСценыПоСтруктуре(структура)
{
for (var имя in структура)
{
var узел = null;
var описание = структура[имя];

var свойства = {};
Object.assign(свойства, описание);
delete свойства["тип"];
delete свойства["x"];
delete свойства["y"];
delete свойства["texture"];

// Создаём узел.
if (описание.тип == "изображение")
{
узел = описание.родитель.add.image(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "платформа")
{
узел = описание.родитель.create(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "спрайт")
{
}

узел.name = имя;

// Выставляем оставшиеся невыставленными свойства.
for (var свойство in свойства)
{
var значение = свойства[свойство];
узел[свойство] = значение;
}

// Необходимо после смены originX/Y.
узел.updateDisplayOrigin();
// Необходимо для статических физических объектов.
if ("refreshBody" in узел)
{
узел.refreshBody();
}
}
}

+ 2
- 58
игра/111.изба.js View File

@@ -106,65 +106,10 @@
// // // //


СоздатьИзбуПоСтруктуре = мир =>
{
var структура = мир.изба;
var сцена = мир.сцена;

for (var имя in структура)
{
var узел = null;
var описание = структура[имя];

var свойства = {};
Object.assign(свойства, описание);
delete свойства["тип"];
delete свойства["x"];
delete свойства["y"];
delete свойства["texture"];

// Создаём узел.
if (описание.тип == "изображение")
{
узел = описание.родитель.add.image(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "платформа")
{
узел = описание.родитель.create(описание.x, описание.y, описание.texture);
}
else if (описание.тип == "спрайт")
{
}

узел.name = имя;

// Выставляем оставшиеся невыставленными свойства.
for (var свойство in свойства)
{
var значение = свойства[свойство];
узел[свойство] = значение;
}

// Необходимо после смены originX/Y.
узел.updateDisplayOrigin();
// Необходимо для статических физических объектов.
if ("refreshBody" in узел)
{
узел.refreshBody();
}
console.debug(имя, описание, узел);
}


};


// // // //


СоздатьИзбу = мир =>
{
создатьУзлыСценыПоСтруктуре(мир.изба);

мир.сцена.sound.play("звук-избы", { loop: true });

мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито");
@@ -630,7 +575,6 @@ console.debug("стрела.x", мир.стрела.x);
загрузить ресурсы избы
создать сцену
задать структуру избы
создать избу по структуре
создать избу
создать платформы
позволить платформам пропускать прыжки


Loading…
Cancel
Save