пф/ст
This commit is contained in:
@@ -317,66 +317,63 @@
|
|||||||
|
|
||||||
СоздатьСтрелы = мир =>
|
СоздатьСтрелы = мир =>
|
||||||
{
|
{
|
||||||
мир.стрелаЗаряжена = false;
|
мир.пфСтрел = мир.сцена.physics.add.staticGroup();
|
||||||
мир.пускСтрелы = false;
|
// Куча стрел.
|
||||||
|
var куча = мир.пфСтрел.create(1270, 405, "основа").setOrigin(0, 0);
|
||||||
// Кучка стрел.
|
куча.setScale(25, 2).refreshBody();
|
||||||
var группаСтрел = мир.сцена.physics.add.staticGroup();
|
куча.body.checkCollision.down = false;
|
||||||
var стрелы = группаСтрел.create(1270, 405, "основа").setOrigin(0, 0);
|
куча.setVisible(false);
|
||||||
стрелы.setScale(25, 2).refreshBody();
|
мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) {
|
||||||
стрелы.body.checkCollision.down = false;
|
|
||||||
стрелы.setVisible(false);
|
|
||||||
var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы);
|
|
||||||
столкновение.collideCallback = function(a, b) {
|
|
||||||
if (мир.колобок.body.touching.down) {
|
if (мир.колобок.body.touching.down) {
|
||||||
мир.состояниеКолобка.прыжокПоСтрелам = true;
|
мир.состояниеКолобка.прыжокПоСтрелам = true;
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
// Стрела к луку.
|
мир.стрелаЗаряжена = false;
|
||||||
мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
|
мир.пускСтрелы = false;
|
||||||
мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody();
|
|
||||||
мир.стрелаКЛуку.depth = 5;
|
|
||||||
|
|
||||||
|
// Стрела лука.
|
||||||
|
мир.стрелаЛука = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
|
||||||
|
мир.стрелаЛука.setScale(0.5, 0.5).refreshBody();
|
||||||
|
мир.стрелаЛука.depth = 5;
|
||||||
// Учитываем платформы.
|
// Учитываем платформы.
|
||||||
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас);
|
мир.сцена.physics.add.collider(мир.стрелаЛука, мир.каркас);
|
||||||
мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.платформы);
|
мир.сцена.physics.add.collider(мир.стрелаЛука, мир.платформы);
|
||||||
|
|
||||||
// Платформа для стрелы у лука, чтобы стрела оставалась в луке.
|
// Платформа для стрелы лука, чтобы оставаться в луке.
|
||||||
var платформы = мир.сцена.physics.add.staticGroup();
|
var пфЛука = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0);
|
||||||
var платформаЛука = платформы.create(1280, 200, "основа").setOrigin(0, 0);
|
пфЛука.body.checkCollision.down = false;
|
||||||
платформаЛука.body.checkCollision.down = false;
|
пфЛука.setVisible(false);
|
||||||
var столкновениеЛука = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаЛука);
|
var стЛука = мир.сцена.physics.add.collider(мир.стрелаЛука, пфЛука);
|
||||||
платформаЛука.setVisible(false);
|
|
||||||
|
|
||||||
// Определение заряда стрелы.
|
// Определение заряда стрелы.
|
||||||
столкновениеЛука.collideCallback = function заряд(a, b) {
|
стЛука.collideCallback = function заряд(a, b) {
|
||||||
if (мир.стрелаКЛуку.body.touching.down && !мир.стрелаЗаряжена)
|
if (мир.стрелаЛука.body.touching.down && !мир.стрелаЗаряжена)
|
||||||
{
|
{
|
||||||
мир.стрелаЗаряжена = true;
|
мир.стрелаЗаряжена = true;
|
||||||
мир.уведомить("стрела заряжена");
|
мир.уведомить("стрела заряжена");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Определение пересечения с заряженной стрелой.
|
// Определение пуска стрелы.
|
||||||
var платформаРазряда = платформы.create(1270, 160, "основа").setOrigin(0, 0);
|
var пфПуска = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0);
|
||||||
платформаРазряда.setVisible(false);
|
пфПуска.setVisible(false);
|
||||||
var разряд = мир.сцена.physics.add.collider(платформаРазряда, мир.колобок);
|
var стПуска = мир.сцена.physics.add.collider(пфПуска, мир.колобок);
|
||||||
разряд.collideCallback = function(a, b) {
|
стПуска.collideCallback = function(a, b) {
|
||||||
if (мир.стрелаЗаряжена && !мир.пускСтрелы)
|
if (мир.стрелаЗаряжена && !мир.пускСтрелы)
|
||||||
{
|
{
|
||||||
мир.пускСтрелы = true;
|
мир.пускСтрелы = true;
|
||||||
мир.уведомить("пуск стрелы");
|
мир.уведомить("пуск стрелы");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
разряд.overlapOnly = true;
|
стПуска.overlapOnly = true;
|
||||||
|
|
||||||
// Платформа для стрелы у окна, чтобы стрела не летела дальше.
|
// Платформа для стрелы у окна, чтобы стрела не летела дальше.
|
||||||
var платформаОкна = платформы.create(1830, 200, "основа").setOrigin(0, 0);
|
var пфОкна = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0);
|
||||||
платформаОкна.setScale(1, 20).refreshBody();
|
пфОкна.setScale(1, 20).refreshBody();
|
||||||
var ударОбОкно = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаОкна);
|
var стОкна = мир.сцена.physics.add.collider(мир.стрелаЛука, пфОкна);
|
||||||
платформаОкна.setVisible(false);
|
пфОкна.setVisible(false);
|
||||||
ударОбОкно.collideCallback = function(a, b) {
|
стОкна.collideCallback = function(a, b) {
|
||||||
if (мир.стрелаЗаряжена && мир.пускСтрелы)
|
if (мир.стрелаЗаряжена && мир.пускСтрелы)
|
||||||
{
|
{
|
||||||
мир.стрелаЗаряжена = false;
|
мир.стрелаЗаряжена = false;
|
||||||
@@ -414,12 +411,12 @@
|
|||||||
|
|
||||||
ПодкидыватьСтрелуКЛуку = мир =>
|
ПодкидыватьСтрелуКЛуку = мир =>
|
||||||
{
|
{
|
||||||
if (!мир.стрелаКЛуку.body.touching.down || мир.стрелаЗаряжена)
|
if (!мир.стрелаЛука.body.touching.down || мир.стрелаЗаряжена)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
|
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
|
||||||
мир.стрелаКЛуку.setVelocityY(-скорость);
|
мир.стрелаЛука.setVelocityY(-скорость);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -446,7 +443,7 @@
|
|||||||
|
|
||||||
ПуститьСтрелу = мир =>
|
ПуститьСтрелу = мир =>
|
||||||
{
|
{
|
||||||
мир.стрелаКЛуку.setVelocityX(1200);
|
мир.стрелаЛука.setVelocityX(1200);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user