|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- /*
- *
- * Реакции
- *
- */
-
-
- ЗагрузитьРесурсыИзбы = мир =>
- {
- мир.сцена.load.audio("звук-избы", "ресурсы/звуки/387922__setuniman__scheming-1o95.mp3");
- мир.сцена.load.audio("звук-зарядки", "ресурсы/звуки/543927__eminyildirim__pistol-gun-cocking.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");
- мир.сцена.load.image("стрела", "ресурсы/вещи/стрела.png");
- };
-
-
- // // // //
-
-
- СоздатьИзбу = мир =>
- {
- мир.сцена.sound.play("звук-избы", { loop: true });
-
- мир.сцена.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,
- },
- // Полка 1.
- {
- x: 666,
- y: 335,
- ширина: 3,
- },
- // Полка молока.
- {
- x: 771,
- y: 335,
- ширина: 3,
- },
- // Полка 3.
- {
- x: 862,
- y: 335,
- ширина: 3,
- },
- // Полка самовара.
- {
- x: 995,
- y: 355,
- ширина: 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(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(самовар);
- };
-
-
- // // // //
-
-
- СоздатьПауков = мир =>
- {
- мир.настройкиПауков = [
- {
- x: 620,
- y: 345,
- скорость: 50,
- низ: 550,
- верх: 270,
- },
- {
- x: 785,
- y: 375,
- скорость: 80,
- низ: 400,
- верх: 270,
- },
- {
- x: 930,
- y: 500,
- скорость: 70,
- низ: 550,
- верх: 270,
- },
- {
- x: 1003,
- y: 250,
- скорость: 55,
- низ: 400,
- верх: 200,
- },
- ];
- мир.пауки = [];
- мир.нитиПауков = [];
- 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(нить);
- }
- };
-
-
- // // // //
-
-
- АнимироватьПауков = мир =>
- {
- for (var номер in мир.пауки)
- {
- var паук = мир.пауки[номер];
- var нить = мир.нитиПауков[номер];
- var настройки = мир.настройкиПауков[номер];
- нить.displayHeight = паук.y - нить.y - 5;
- if (паук.y > настройки.низ)
- {
- паук.setVelocityY(-настройки.скорость);
- } else if (паук.y < настройки.верх)
- {
- паук.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;
- }
- }
- };
-
-
- // // // //
-
-
- СоздатьСтрелы = мир =>
- {
- мир.стрелаЗаряжена = false;
-
- // Кучка стрел.
- var группаСтрел = мир.сцена.physics.add.staticGroup();
- var стрелы = группаСтрел.create(1270, 405, "основа").setOrigin(0, 0);
- стрелы.setScale(25, 2).refreshBody();
- стрелы.body.checkCollision.down = false;
- стрелы.setVisible(false);
- var столкновение = мир.сцена.physics.add.collider(мир.колобок, стрелы);
- столкновение.collideCallback = function(a, b) {
- мир.состояниеКолобка.прыжокПоСтрелам = true;
- };
-
- // Стрела в луку.
- мир.стрелаКЛуку = мир.сцена.physics.add.sprite(1250, 380, "стрела").setOrigin(0, 0);
- мир.стрелаКЛуку.setScale(0.5, 0.5).refreshBody();
- мир.стрелаКЛуку.depth = 15;
-
- // Учитываем платформы.
- мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.каркас);
- мир.сцена.physics.add.collider(мир.стрелаКЛуку, мир.платформы);
-
- // Платформа для стрелы у лука, чтобы стрела оставалась в луке.
- var платформы = мир.сцена.physics.add.staticGroup();
- var платформаЛука = платформы.create(1280, 200, "основа").setOrigin(0, 0);
- платформаЛука.body.checkCollision.down = false;
- var столкновениеЛука = мир.сцена.physics.add.collider(мир.стрелаКЛуку, платформаЛука);
- платформаЛука.setVisible(false);
-
- // Определение заряда стрелы.
- столкновениеЛука.collideCallback = function заряд(a, b) {
- if (мир.стрелаКЛуку.body.touching.down && !мир.стрелаЗаряжена)
- {
- мир.стрелаЗаряжена = true;
- мир.уведомить("стрела заряжена");
- }
- }
- };
-
-
- // // // //
-
-
- ОтследитьПрыжокПоСтрелам = мир =>
- {
- мир.состояниеКолобка.прыжокПоСтрелам = null;
- };
-
-
- // // // //
-
-
- ПроверитьНаличиеПрыжкаПоСтрелам = мир =>
- {
- if (!мир.состояниеКолобка.прыжокПоСтрелам)
- {
- return;
- }
- мир.уведомить("прыжок по платформе стрел");
- };
-
-
- // // // //
-
-
- ПодкидыватьСтрелуКЛуку = мир =>
- {
- if (!мир.стрелаКЛуку.body.touching.down || мир.стрелаЗаряжена)
- {
- return;
- }
- var скорость = мир.состояниеКолобка.скоростьПадения * 0.9;
- мир.стрелаКЛуку.setVelocityY(-скорость);
- };
-
-
- // // // //
-
-
- ВоспроизвестиЗвукЗарядкиСтрелы = мир =>
- {
- мир.сцена.sound.play("звук-зарядки");
- };
-
-
- /*
- *
- * Последовательность
- *
- */
-
-
- мир.разобрать(`
- загрузить ресурсы сцены
- загрузить ресурсы избы
- создать сцену
- создать избу
- создать полы и стены каркаса
- создать платформы
- позволить платформам пропускать прыжки
- создать вещи
- создать пауков
- создать мышей
- создать стрелы
- обновить сцену
- анимировать пауков
- анимировать мышей
- колобок начал прыжок
- отследить прыжок по стрелам
- колобок закончил прыжок
- проверить наличие прыжка по стрелам
- прыжок по платформе стрел
- подкидывать стрелу к луку
- стрела заряжена
- воспроизвести звук зарядки стрелы
- `);
-
|