307 lines
7.5 KiB
JavaScript
307 lines
7.5 KiB
JavaScript
/*
|
||
*
|
||
* Реакции
|
||
*
|
||
*/
|
||
|
||
|
||
ЗагрузитьРесурсыИзбы = мир =>
|
||
{
|
||
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg");
|
||
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png");
|
||
мир.сцена.load.image("изба", "ресурсы/сцены/изба.jpg");
|
||
мир.сцена.load.image("молоко", "ресурсы/вещи/банка_молока.png");
|
||
мир.сцена.load.image("паук", "ресурсы/животные/паук.png");
|
||
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png");
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
СоздатьИзбу = мир =>
|
||
{
|
||
мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0);
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
СоздатьПолыИСтеныКаркаса = мир =>
|
||
{
|
||
var полы = [
|
||
{
|
||
x: 0,
|
||
y: 585,
|
||
ширина: 43,
|
||
},
|
||
{
|
||
x: 300,
|
||
y: 585,
|
||
ширина: 30,
|
||
},
|
||
{
|
||
x: 510,
|
||
y: 585,
|
||
ширина: 200,
|
||
},
|
||
];
|
||
for (var номер in полы)
|
||
{
|
||
var пол = полы[номер];
|
||
var элемент = мир.каркас.create(пол.x, пол.y, "основа").setOrigin(0, 0);
|
||
элемент.setScale(пол.ширина, 1).refreshBody();
|
||
элемент.setVisible(false);
|
||
}
|
||
|
||
var стены = [
|
||
{
|
||
x: 0,
|
||
y: 385,
|
||
высота: 50,
|
||
},
|
||
{
|
||
x: 2000,
|
||
y: 385,
|
||
высота: 50,
|
||
},
|
||
];
|
||
for (var номер in стены)
|
||
{
|
||
var стена = стены[номер];
|
||
var элемент = мир.каркас.create(стена.x, стена.y, "основа");
|
||
элемент.setScale(1, стена.высота).refreshBody();
|
||
элемент.setVisible(false);
|
||
}
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
СоздатьПлатформы = мир =>
|
||
{
|
||
var п = [
|
||
{
|
||
x: 583,
|
||
y: 473,
|
||
ширина: 65,
|
||
},
|
||
{
|
||
x: 666,
|
||
y: 340,
|
||
ширина: 3,
|
||
},
|
||
{
|
||
x: 771,
|
||
y: 340,
|
||
ширина: 3,
|
||
},
|
||
{
|
||
x: 862,
|
||
y: 340,
|
||
ширина: 3,
|
||
},
|
||
{
|
||
x: 995,
|
||
y: 345, // НАДО 345, чтобы не допрыгиать без помощи кота.
|
||
ширина: 4,
|
||
},
|
||
{
|
||
x: 620,
|
||
y: 245,
|
||
ширина: 35,
|
||
},
|
||
{
|
||
x: 950,
|
||
y: 180,
|
||
ширина: 12,
|
||
},
|
||
{
|
||
x: 1270,
|
||
y: 427,
|
||
ширина: 70,
|
||
},
|
||
{
|
||
x: 1690,
|
||
y: 375,
|
||
ширина: 20,
|
||
},
|
||
];
|
||
for (var номер in п)
|
||
{
|
||
var часть = п[номер];
|
||
var элемент = мир.платформы.create(часть.x, часть.y, "основа").setOrigin(0, 0);
|
||
элемент.setScale(часть.ширина, 1).refreshBody();
|
||
элемент.setVisible(false);
|
||
}
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
ПозволитьПлатформамПропускатьПрыжки = мир =>
|
||
{
|
||
мир.платформы.children.iterate(function(платформа) {
|
||
платформа.body.checkCollision.down = false;
|
||
платформа.body.checkCollision.left = false;
|
||
платформа.body.checkCollision.right = false;
|
||
});
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
СоздатьВещи = мир =>
|
||
{
|
||
var молоко = мир.сцена.physics.add.sprite(830, 430, "молоко");
|
||
молоко.setScale(0.5, 0.5).refreshBody();
|
||
молоко.depth = 5;
|
||
мир.вещи.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;
|
||
}
|
||
}
|
||
};
|
||
|
||
|
||
/*
|
||
*
|
||
* Последовательность
|
||
*
|
||
*/
|
||
|
||
|
||
мир.разобрать(`
|
||
загрузить ресурсы сцены
|
||
загрузить ресурсы избы
|
||
создать сцену
|
||
создать избу
|
||
создать полы и стены каркаса
|
||
создать платформы
|
||
позволить платформам пропускать прыжки
|
||
создать вещи
|
||
создать пауков
|
||
создать мышей
|
||
обновить сцену
|
||
анимировать пауков
|
||
анимировать мышей
|
||
`);
|
||
|