|
|
@@ -12,11 +12,14 @@ |
|
|
|
мир.сцена.load.audio("пуск-стрелы", "ресурсы/звуки/521552__omerbhatti34__arrow-impact.mp3"); |
|
|
|
мир.сцена.load.audio("удар-стрелы", "ресурсы/звуки/330800__czarcazas__shattering-glass-small.mp3"); |
|
|
|
мир.сцена.load.audio("выломали-окно", "ресурсы/звуки/448004__kneeling__break-window.mp3"); |
|
|
|
мир.сцена.load.audio("молоко-перевернули", "ресурсы/звуки/235596__tcrocker68__large-glassbottle-fall-woodfloor.wav"); |
|
|
|
мир.сцена.load.audio("молоко-прыгнули", "ресурсы/звуки/352065__cabled-mess__glassy-bits-06.wav"); |
|
|
|
|
|
|
|
мир.сцена.load.image("основа", "ресурсы/отладка/основа.jpg"); |
|
|
|
мир.сцена.load.image("линия", "ресурсы/отладка/линия_вертикальная.png"); |
|
|
|
мир.сцена.load.image("изба", "ресурсы/сцены/изба.jpg"); |
|
|
|
мир.сцена.load.image("молоко", "ресурсы/вещи/банка_молока.png"); |
|
|
|
мир.сцена.load.image("лужа", "ресурсы/вещи/лужа.png"); |
|
|
|
мир.сцена.load.image("паук", "ресурсы/животные/паук.png"); |
|
|
|
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png"); |
|
|
|
мир.сцена.load.image("мышь", "ресурсы/животные/мышь.png"); |
|
|
@@ -30,219 +33,441 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьИзбу = мир => |
|
|
|
ЗадатьСтруктуруИзбы = мир => |
|
|
|
{ |
|
|
|
мир.сцена.sound.play("звук-избы", { loop: true }); |
|
|
|
|
|
|
|
мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0); |
|
|
|
|
|
|
|
мир.разбитоеОкно = мир.сцена.add.image(1660, 183, "окно-разбито"); |
|
|
|
мир.разбитоеОкно.setOrigin(0, 0).setScale(0.75, 0.75); |
|
|
|
мир.разбитоеОкно.setVisible(false); |
|
|
|
|
|
|
|
мир.выломанноеОкно = мир.сцена.add.image(1660, 183, "окно-выломано"); |
|
|
|
мир.выломанноеОкно.setOrigin(0, 0).setScale(0.75, 0.75); |
|
|
|
мир.выломанноеОкно.setVisible(false); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
мир.изба = { |
|
|
|
фон: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 0, |
|
|
|
y: 0, |
|
|
|
texture: "изба", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
}, |
|
|
|
|
|
|
|
СоздатьПолыИСтеныКаркаса = мир => |
|
|
|
{ |
|
|
|
var полы = [ |
|
|
|
{ |
|
|
|
полДоКрышки: { |
|
|
|
родитель: мир.каркас, |
|
|
|
тип: "платформа", |
|
|
|
x: 0, |
|
|
|
y: 585, |
|
|
|
ширина: 43, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 43, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
полКрышки: { |
|
|
|
родитель: мир.каркас, |
|
|
|
тип: "платформа", |
|
|
|
x: 300, |
|
|
|
y: 585, |
|
|
|
ширина: 30, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 30, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
полПослеКрышки: { |
|
|
|
родитель: мир.каркас, |
|
|
|
тип: "платформа", |
|
|
|
x: 510, |
|
|
|
y: 585, |
|
|
|
ширина: 200, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 200, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
]; |
|
|
|
for (var номер in полы) |
|
|
|
{ |
|
|
|
var пол = полы[номер]; |
|
|
|
var элемент = мир.каркас.create(пол.x, пол.y, "основа").setOrigin(0, 0); |
|
|
|
элемент.setScale(пол.ширина, 1).refreshBody(); |
|
|
|
элемент.setVisible(false); |
|
|
|
} |
|
|
|
|
|
|
|
var стены = [ |
|
|
|
{ |
|
|
|
леваяСтена: { |
|
|
|
родитель: мир.каркас, |
|
|
|
тип: "платформа", |
|
|
|
x: 0, |
|
|
|
y: 385, |
|
|
|
высота: 50, |
|
|
|
y: 200, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleY: 50, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
праваяСтена: { |
|
|
|
родитель: мир.каркас, |
|
|
|
тип: "платформа", |
|
|
|
x: 2000, |
|
|
|
y: 385, |
|
|
|
высота: 50, |
|
|
|
y: 200, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleY: 50, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
]; |
|
|
|
for (var номер in стены) |
|
|
|
{ |
|
|
|
var стена = стены[номер]; |
|
|
|
var элемент = мир.каркас.create(стена.x, стена.y, "основа"); |
|
|
|
элемент.setScale(1, стена.высота).refreshBody(); |
|
|
|
элемент.setVisible(false); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьПлатформы = мир => |
|
|
|
{ |
|
|
|
var п = [ |
|
|
|
{ |
|
|
|
фундаментПечи: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 583, |
|
|
|
y: 473, |
|
|
|
ширина: 65, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 65, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
// Полка 1. |
|
|
|
{ |
|
|
|
полка1: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 666, |
|
|
|
y: 335, |
|
|
|
ширина: 3, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 3, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
// Полка молока. |
|
|
|
{ |
|
|
|
полкаМолока: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 771, |
|
|
|
y: 335, |
|
|
|
ширина: 3, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 3, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
// Полка 3. |
|
|
|
{ |
|
|
|
полка3: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 862, |
|
|
|
y: 335, |
|
|
|
ширина: 3, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 3, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
// Полка самовара. |
|
|
|
{ |
|
|
|
полкаСамовара: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 995, |
|
|
|
y: 355, |
|
|
|
ширина: 4, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 4, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
лежанкаПечи: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 620, |
|
|
|
y: 245, |
|
|
|
ширина: 35, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 35, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
основаТрубыПечи: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 950, |
|
|
|
y: 180, |
|
|
|
ширина: 12, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 12, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
// Стол. |
|
|
|
{ |
|
|
|
|
|
|
|
стол: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1270, |
|
|
|
y: 427, |
|
|
|
ширина: 70, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 70, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
// Окно. |
|
|
|
{ |
|
|
|
подоконник: { |
|
|
|
родитель: мир.платформы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1690, |
|
|
|
y: 375, |
|
|
|
ширина: 20, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 20, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
разбитоеОкно: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 1660, |
|
|
|
y: 183, |
|
|
|
texture: "окно-разбито", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 0.75, |
|
|
|
scaleY: 0.75, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
выломанноеОкно: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 1660, |
|
|
|
y: 183, |
|
|
|
texture: "окно-выломано", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 0.75, |
|
|
|
scaleY: 0.75, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
]; |
|
|
|
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(785, 240, "молоко"); |
|
|
|
молоко.setScale(0.4, 0.4).refreshBody(); |
|
|
|
молоко.depth = 5; |
|
|
|
мир.вещи.add(молоко); |
|
|
|
|
|
|
|
var самовар = мир.сцена.physics.add.sprite(1003, 200, "самовар"); |
|
|
|
самовар.setScale(0.25, 0.25).refreshBody(); |
|
|
|
самовар.depth = 5; |
|
|
|
мир.вещи.add(самовар); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
молоко: { |
|
|
|
родитель: мир.сцена.physics, |
|
|
|
тип: "спрайт", |
|
|
|
группы: [мир.вещи], |
|
|
|
x: 785, |
|
|
|
y: 240, |
|
|
|
texture: "молоко", |
|
|
|
scaleX: 0.4, |
|
|
|
scaleY: 0.4, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
лужа: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 285, |
|
|
|
y: 585, |
|
|
|
texture: "лужа", |
|
|
|
scaleX: 0.25, |
|
|
|
scaleY: 0.25, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
самовар: { |
|
|
|
родитель: мир.сцена.physics, |
|
|
|
тип: "спрайт", |
|
|
|
группы: [мир.вещи], |
|
|
|
x: 1003, |
|
|
|
y: 200, |
|
|
|
texture: "самовар", |
|
|
|
scaleX: 0.25, |
|
|
|
scaleY: 0.25, |
|
|
|
depth: 5, |
|
|
|
}, |
|
|
|
|
|
|
|
СоздатьПауков = мир => |
|
|
|
{ |
|
|
|
мир.настройкиПауков = [ |
|
|
|
{ |
|
|
|
паук1: { |
|
|
|
родитель: мир.враги, |
|
|
|
тип: "платформа", |
|
|
|
x: 620, |
|
|
|
y: 345, |
|
|
|
texture: "паук", |
|
|
|
скорость: 50, |
|
|
|
низ: 550, |
|
|
|
верх: 270, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
{ |
|
|
|
нить1: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 619, |
|
|
|
y: 245, |
|
|
|
texture: "линия", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
паук2: { |
|
|
|
родитель: мир.враги, |
|
|
|
тип: "платформа", |
|
|
|
x: 785, |
|
|
|
y: 375, |
|
|
|
скорость: 80, |
|
|
|
низ: 400, |
|
|
|
texture: "паук", |
|
|
|
скорость: 70, |
|
|
|
низ: 600, |
|
|
|
верх: 270, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
{ |
|
|
|
нить2: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 784, |
|
|
|
y: 245, |
|
|
|
texture: "линия", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
паук3: { |
|
|
|
родитель: мир.враги, |
|
|
|
тип: "платформа", |
|
|
|
x: 930, |
|
|
|
y: 500, |
|
|
|
texture: "паук", |
|
|
|
скорость: 70, |
|
|
|
низ: 550, |
|
|
|
верх: 270, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
{ |
|
|
|
нить3: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 929, |
|
|
|
y: 245, |
|
|
|
texture: "линия", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
паук4: { |
|
|
|
родитель: мир.враги, |
|
|
|
тип: "платформа", |
|
|
|
x: 1003, |
|
|
|
y: 250, |
|
|
|
texture: "паук", |
|
|
|
скорость: 40, |
|
|
|
низ: 400, |
|
|
|
верх: 200, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
]; |
|
|
|
нить4: { |
|
|
|
родитель: мир.сцена, |
|
|
|
тип: "изображение", |
|
|
|
x: 1002, |
|
|
|
y: 180, |
|
|
|
texture: "линия", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
depth: 10, |
|
|
|
}, |
|
|
|
|
|
|
|
мышь1: { |
|
|
|
родитель: мир.враги, |
|
|
|
тип: "платформа", |
|
|
|
x: 350, |
|
|
|
y: 575, |
|
|
|
texture: "мышь", |
|
|
|
flipX: true, |
|
|
|
depth: 10, |
|
|
|
скорость: 290, |
|
|
|
}, |
|
|
|
мышь2: { |
|
|
|
родитель: мир.враги, |
|
|
|
тип: "платформа", |
|
|
|
x: 740, |
|
|
|
y: 575, |
|
|
|
texture: "мышь", |
|
|
|
flipX: true, |
|
|
|
depth: 10, |
|
|
|
скорость: 375, |
|
|
|
}, |
|
|
|
|
|
|
|
кучаСтрел: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1270, |
|
|
|
y: 405, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 25, |
|
|
|
scaleY: 2, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
лук: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1280, |
|
|
|
y: 200, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
пускСтрелы: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1270, |
|
|
|
y: 160, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
границаПолётаСтрелы: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1830, |
|
|
|
y: 200, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleY: 20, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ЗадатьФункциюПоискаУзлаПоИмени = мир => |
|
|
|
{ |
|
|
|
мир.узелСцены = function(имя) { |
|
|
|
return мир.сцена.children.list.find(function(элемент) { |
|
|
|
return элемент.name == имя; |
|
|
|
}); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьИзбу = мир => |
|
|
|
{ |
|
|
|
создатьУзлыСценыПоСтруктуре(мир.изба); |
|
|
|
мир.сцена.sound.play("звук-избы", { loop: true }); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПозволитьПлатформамПропускатьПрыжки = мир => |
|
|
|
{ |
|
|
|
мир.платформы.children.iterate(function(платформа) { |
|
|
|
платформа.body.checkCollision.down = false; |
|
|
|
платформа.body.checkCollision.left = false; |
|
|
|
платформа.body.checkCollision.right = false; |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
НастроитьПауков = мир => |
|
|
|
{ |
|
|
|
мир.пауки = []; |
|
|
|
мир.нитиПауков = []; |
|
|
|
for (var номер in мир.настройкиПауков) |
|
|
|
for (var имя in мир.изба) |
|
|
|
{ |
|
|
|
var настройки = мир.настройкиПауков[номер]; |
|
|
|
var паук = мир.враги.create(настройки.x, настройки.y, "паук"); |
|
|
|
паук.body.setVelocityY(настройки.скорость); |
|
|
|
паук.depth = 10; |
|
|
|
мир.пауки.push(паук); |
|
|
|
var нить = мир.сцена.add.image(настройки.x - 1, настройки.верх - 25, "линия").setOrigin(0, 0); |
|
|
|
нить.depth = паук.depth; |
|
|
|
мир.нитиПауков.push(нить); |
|
|
|
if (имя.startsWith("паук")) |
|
|
|
{ |
|
|
|
var паук = мир.узелСцены(имя); |
|
|
|
var имяНити = имя.replace("паук", "нить"); |
|
|
|
var нить = мир.узелСцены(имяНити); |
|
|
|
паук.body.setVelocityY(паук.скорость); |
|
|
|
мир.пауки.push(паук); |
|
|
|
мир.нитиПауков.push(нить); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
@@ -256,14 +481,13 @@ |
|
|
|
{ |
|
|
|
var паук = мир.пауки[номер]; |
|
|
|
var нить = мир.нитиПауков[номер]; |
|
|
|
var настройки = мир.настройкиПауков[номер]; |
|
|
|
нить.displayHeight = паук.y - нить.y - 5; |
|
|
|
if (паук.y > настройки.низ) |
|
|
|
if (паук.y > паук.низ) |
|
|
|
{ |
|
|
|
паук.setVelocityY(-настройки.скорость); |
|
|
|
} else if (паук.y < настройки.верх) |
|
|
|
паук.setVelocityY(-паук.скорость); |
|
|
|
} else if (паук.y < паук.верх) |
|
|
|
{ |
|
|
|
паук.setVelocityY(настройки.скорость); |
|
|
|
паук.setVelocityY(паук.скорость); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
@@ -272,29 +496,17 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьМышей = мир => |
|
|
|
НастроитьМышей = мир => |
|
|
|
{ |
|
|
|
мир.настройкиМышей= [ |
|
|
|
{ |
|
|
|
x: 350, |
|
|
|
y: 575, |
|
|
|
скорость: 290, |
|
|
|
}, |
|
|
|
{ |
|
|
|
x: 740, |
|
|
|
y: 575, |
|
|
|
скорость: 375, |
|
|
|
}, |
|
|
|
]; |
|
|
|
мир.мыши = []; |
|
|
|
for (var номер in мир.настройкиМышей) |
|
|
|
for (var имя in мир.изба) |
|
|
|
{ |
|
|
|
var настройки = мир.настройкиМышей[номер]; |
|
|
|
var мышь = мир.враги.create(настройки.x, настройки.y, "мышь"); |
|
|
|
мышь.body.setVelocityX(настройки.скорость); |
|
|
|
мышь.depth = 10; |
|
|
|
мышь.flipX = true; |
|
|
|
мир.мыши.push(мышь); |
|
|
|
if (имя.startsWith("мышь")) |
|
|
|
{ |
|
|
|
var мышь = мир.узелСцены(имя); |
|
|
|
мышь.body.setVelocityX(мышь.скорость); |
|
|
|
мир.мыши.push(мышь); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
@@ -307,14 +519,13 @@ |
|
|
|
for (var номер in мир.мыши) |
|
|
|
{ |
|
|
|
var мышь= мир.мыши[номер]; |
|
|
|
var скорость = мир.настройкиМышей[номер].скорость; |
|
|
|
if (мышь.x > 1950) |
|
|
|
{ |
|
|
|
мышь.setVelocityX(-скорость); |
|
|
|
мышь.setVelocityX(-мышь.скорость); |
|
|
|
мышь.flipX = false; |
|
|
|
} else if (мышь.x < 50) |
|
|
|
{ |
|
|
|
мышь.setVelocityX(скорость); |
|
|
|
мышь.setVelocityX(мышь.скорость); |
|
|
|
мышь.flipX = true; |
|
|
|
} |
|
|
|
} |
|
|
@@ -324,30 +535,18 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьСтрелы = мир => |
|
|
|
НастроитьСтрелы = мир => |
|
|
|
{ |
|
|
|
мир.пфСтрел = мир.сцена.physics.add.staticGroup(); |
|
|
|
var куча = мир.пфСтрел.create(1270, 405, "основа").setOrigin(0, 0); |
|
|
|
куча.setScale(25, 2).refreshBody(); |
|
|
|
var куча = мир.узелСцены("кучаСтрел"); |
|
|
|
куча.body.checkCollision.down = false; |
|
|
|
куча.setVisible(false); |
|
|
|
|
|
|
|
мир.пфЛук = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0); |
|
|
|
мир.пфЛук.body.checkCollision.down = false; |
|
|
|
мир.пфЛук.setVisible(false); |
|
|
|
|
|
|
|
var пуск = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0); |
|
|
|
пуск.setVisible(false); |
|
|
|
|
|
|
|
мир.пфОкно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0); |
|
|
|
мир.пфОкно.setScale(1, 20).refreshBody(); |
|
|
|
мир.пфОкно.setVisible(false); |
|
|
|
var лук = мир.узелСцены("лук"); |
|
|
|
лук.body.checkCollision.down = false; |
|
|
|
var пуск = мир.узелСцены("пускСтрелы"); |
|
|
|
|
|
|
|
// Определение прыжка по стрелам. |
|
|
|
мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) { |
|
|
|
if (мир.колобок.body.touching.down) { |
|
|
|
мир.состояниеКолобка.прыжокПоСтрелам = true; |
|
|
|
console.debug("прыжок по стрелам"); |
|
|
|
мир.колобок.прыжокПоСтрелам = true; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
@@ -358,7 +557,6 @@ console.debug("прыжок по стрелам"); |
|
|
|
{ |
|
|
|
мир.пускСтрелы = true; |
|
|
|
мир.уведомить("пуск стрелы"); |
|
|
|
console.debug("пуск стрелы"); |
|
|
|
} |
|
|
|
}; |
|
|
|
стПуск.overlapOnly = true; |
|
|
@@ -381,29 +579,27 @@ console.debug("пуск стрелы"); |
|
|
|
мир.сцена.physics.add.collider(мир.стрела, мир.платформы); |
|
|
|
|
|
|
|
// Определение заряда стрелы. |
|
|
|
var стЛук = мир.сцена.physics.add.collider(мир.стрела, мир.пфЛук); |
|
|
|
стЛук.collideCallback = function заряд(a, b) { |
|
|
|
var лук = мир.узелСцены("лук"); |
|
|
|
var стЛук = мир.сцена.physics.add.collider(мир.стрела, лук); |
|
|
|
стЛук.collideCallback = function(a, b) { |
|
|
|
if (мир.стрела.body.touching.down && !мир.стрелаЗаряжена) |
|
|
|
{ |
|
|
|
мир.стрелаЗаряжена = true; |
|
|
|
мир.уведомить("стрела заряжена"); |
|
|
|
console.debug("стрела заряжена"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// Определение столкновения с окном. |
|
|
|
var стОкно = мир.сцена.physics.add.collider(мир.стрела, мир.пфОкно); |
|
|
|
var граница = мир.узелСцены("границаПолётаСтрелы"); |
|
|
|
var стОкно = мир.сцена.physics.add.collider(мир.стрела, граница); |
|
|
|
стОкно.collideCallback = function(a, b) { |
|
|
|
if (мир.стрелаЗаряжена && мир.пускСтрелы) |
|
|
|
{ |
|
|
|
мир.стрелаЗаряжена = false; |
|
|
|
мир.пускСтрелы = false; |
|
|
|
мир.уведомить("удар стрелы об окно"); |
|
|
|
console.debug("удар стрелы об окно"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
console.debug("стрела.x", мир.стрела.x); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -412,7 +608,7 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
|
|
|
|
ОтследитьПрыжокПоСтрелам = мир => |
|
|
|
{ |
|
|
|
мир.состояниеКолобка.прыжокПоСтрелам = null; |
|
|
|
мир.колобок.прыжокПоСтрелам = null; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -421,7 +617,7 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
|
|
|
|
ПроверитьНаличиеПрыжкаПоСтрелам = мир => |
|
|
|
{ |
|
|
|
if (!мир.состояниеКолобка.прыжокПоСтрелам) |
|
|
|
if (!мир.колобок.прыжокПоСтрелам) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
@@ -438,7 +634,7 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
var скорость = мир.состояниеКолобка.скоростьПадения * 0.9; |
|
|
|
var скорость = мир.колобок.скоростьПадения * 0.9; |
|
|
|
мир.стрела.setVelocityY(-скорость); |
|
|
|
}; |
|
|
|
|
|
|
@@ -466,7 +662,16 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
|
|
|
|
ПуститьСтрелу = мир => |
|
|
|
{ |
|
|
|
мир.стрела.setVelocityX(1200); |
|
|
|
function randInt(min, max) |
|
|
|
{ |
|
|
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#getting_a_random_integer_between_two_values |
|
|
|
min = Math.ceil(min); |
|
|
|
max = Math.floor(max); |
|
|
|
return Math.floor(Math.random() * (max - min)) + min; |
|
|
|
} |
|
|
|
var скорость = randInt(1100, 1300); |
|
|
|
|
|
|
|
мир.стрела.setVelocityX(скорость); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -484,7 +689,7 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
|
|
|
|
ОтобразитьРазбитоеОкно = мир => |
|
|
|
{ |
|
|
|
мир.разбитоеОкно.setVisible(true); |
|
|
|
мир.узелСцены("разбитоеОкно").setVisible(true); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -493,8 +698,8 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
|
|
|
|
ОтобразитьВыломанноеОкно = мир => |
|
|
|
{ |
|
|
|
мир.разбитоеОкно.setVisible(false); |
|
|
|
мир.выломанноеОкно.setVisible(true); |
|
|
|
мир.узелСцены("разбитоеОкно").setVisible(false); |
|
|
|
мир.узелСцены("выломанноеОкно").setVisible(true); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -539,6 +744,111 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПроверитьПрыжокПоМолоку = мир => |
|
|
|
{ |
|
|
|
if (мир.колобок.вещь == "молоко") |
|
|
|
{ |
|
|
|
мир.уведомить("колобок прыгнул по молоку"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПроверитьДостаточностьПрыжкаПоМолоку = мир => |
|
|
|
{ |
|
|
|
if (мир.колобок.скоростьПадения >= 500) { |
|
|
|
мир.уведомить("достаточный прыжок по молоку"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
НачатьПереворотМолока = мир => |
|
|
|
{ |
|
|
|
мир.молоко = мир.узелСцены("молоко"); |
|
|
|
мир.вещи.remove(мир.молоко); |
|
|
|
мир.вещиНедвижимые.add(мир.молоко); |
|
|
|
мир.молоко.setAngularVelocity(120); |
|
|
|
мир.молоко.setVelocityY(-500); |
|
|
|
мир.молоко.переворот = 1; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
АнимироватьПереворотМолока = мир => |
|
|
|
{ |
|
|
|
if (!мир.молоко) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (мир.молоко.переворот == 1) |
|
|
|
{ |
|
|
|
мир.молоко.переворот = 2; |
|
|
|
setTimeout( |
|
|
|
function() { |
|
|
|
мир.молоко.переворот = 3; |
|
|
|
// Меняем местами высоту и ширину тела. |
|
|
|
var тело = мир.молоко.body; |
|
|
|
var ширина = тело.height / мир.молоко.scaleY; |
|
|
|
var высота = тело.width / мир.молоко.scaleX; |
|
|
|
тело.setSize(ширина, высота); |
|
|
|
}, |
|
|
|
100 |
|
|
|
); |
|
|
|
} |
|
|
|
else if ( |
|
|
|
(мир.молоко.переворот == 3) && |
|
|
|
(мир.молоко.body.touching.down) |
|
|
|
) { |
|
|
|
мир.молоко.depth = 5; |
|
|
|
мир.молоко.body.stop(); |
|
|
|
мир.молоко = null; |
|
|
|
мир.уведомить("перевернули молоко"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПоказатьЛужуМолока = мир => |
|
|
|
{ |
|
|
|
|
|
|
|
var молоко = мир.узелСцены("молоко"); |
|
|
|
var лужа = мир.узелСцены("лужа"); |
|
|
|
лужа.setPosition(молоко.x + 40, молоко.y + 20); |
|
|
|
лужа.setVisible(true); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ВоспроизвестиЗвукПрыжкаПоМолоку = мир => |
|
|
|
{ |
|
|
|
мир.сцена.sound.play("молоко-прыгнули"); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ВоспроизвестиЗвукПереворотаМолока = мир => |
|
|
|
{ |
|
|
|
мир.сцена.sound.play("молоко-перевернули", { seek: 1 }); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
* |
|
|
|
* Последовательность |
|
|
@@ -550,18 +860,14 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
загрузить ресурсы сцены |
|
|
|
загрузить ресурсы избы |
|
|
|
создать сцену |
|
|
|
задать структуру избы |
|
|
|
задать функцию поиска узла по имени |
|
|
|
создать избу |
|
|
|
создать полы и стены каркаса |
|
|
|
создать платформы |
|
|
|
позволить платформам пропускать прыжки |
|
|
|
создать вещи |
|
|
|
создать пауков |
|
|
|
создать мышей |
|
|
|
создать стрелы |
|
|
|
настроить пауков |
|
|
|
настроить мышей |
|
|
|
настроить стрелы |
|
|
|
создать стрелу |
|
|
|
обновить сцену |
|
|
|
анимировать пауков |
|
|
|
анимировать мышей |
|
|
|
колобок начал прыжок |
|
|
|
отследить прыжок по стрелам |
|
|
|
колобок закончил прыжок |
|
|
@@ -584,5 +890,20 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
воспроизвести звук выломанного окна |
|
|
|
сразу после удара |
|
|
|
создать стрелу |
|
|
|
колобок прыгнул на вещь |
|
|
|
проверить прыжок по молоку |
|
|
|
колобок прыгнул по молоку |
|
|
|
проверить достаточность прыжка по молоку |
|
|
|
воспроизвести звук прыжка по молоку |
|
|
|
достаточный прыжок по молоку |
|
|
|
начать переворот молока |
|
|
|
перевернули молоко |
|
|
|
показать лужу молока |
|
|
|
воспроизвести звук переворота молока |
|
|
|
|
|
|
|
обновить сцену |
|
|
|
анимировать пауков |
|
|
|
анимировать мышей |
|
|
|
анимировать переворот молока |
|
|
|
`); |
|
|
|
|