|
- // // // //
- // Основа избы
- // // // //
-
-
- мир.разобрать({
- заголовок: "Колобку здесь быть",
- изображения: {
- дом: {
- ширина: 2000,
- высота: 600,
- вид: {
- background: "url(р/сцены/изба.jpg)",
- },
- },
- },
- объекты: {
- полСлева: {
- x: 0,
- y: 580,
- ширина: 355,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- },
- полКрышки: {
- x: 357,
- y: 580,
- ширина: 135,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- },
- полСправа: {
- x: 495,
- y: 580,
- ширина: 1505,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- },
- стол: {
- x: 1253,
- y: 420,
- ширина: 610,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- подоконник: {
- x: 1673,
- y: 375,
- ширина: 200,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- angle: -0.0698,
- collisionFilter: {
- category: 2,
- },
- },
- },
- },
- звуки: {
- изба: {
- события: ["вошли в избу"],
- файл: "р/звуки/387922__setuniman__scheming-1o95.mp3",
- повторять: true,
- останов: ["покинули избу"],
- },
- },
- });
-
-
-
- // // // //
- // Игрок
- // // // //
-
-
- мир.разобрать({
- изображения: {
- колобок: {
- ширина: 70,
- высота: 70,
- вид: {
- background: "url(р/колобок/колобок_неподвижен.png)",
- //"z-index": 10,
- },
- },
- },
- объекты: {
- кирпич: {
- x: 1170,
- y: 350,
- высота: 20,
- ширина: 40,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- isStatic: false,
- inertia: Infinity,
- },
- },
- },
- игрок: {
- объект: "рт",
- //объект: "кирпич",
- скорость: [5, 12.5],
- клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"],
- },
- слежение: {
- /*
- колобок: {
- объект: "кирпич",
- изображение: "колобок",
- смещение: [-35, -60],
- скорость: 1,
- },
- */
- камера: {
- объект: "рт",
- //объект: "кирпич",
- скорость: 0.1,
- },
- },
- маскиПрыжков: {
- игрок: {
- объект: "рт",
- //объект: "кирпич",
- скорость: -1,
- маски: [1, 1|2],
- },
- },
- звуки: {
- прыжокИгрока: {
- события: ["игрок начал прыжок"],
- файл: "р/звуки/331381__qubodup__public-domain-jump-sound.wav",
- },
- },
- });
-
-
-
- // // // //
- // Платформы и объекты печи
- // // // //
-
-
- мир.разобрать({
- объекты: {
- фундаментПечи: {
- x: 570,
- y: 470,
- ширина: 550,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полка1: {
- x: 660,
- y: 335,
- ширина: 40,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полка2: {
- x: 767,
- y: 335,
- ширина: 40,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полка3: {
- x: 855,
- y: 335,
- ширина: 40,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полкаСамовара: {
- x: 975,
- y: 355,
- ширина: 70,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- лежанкаПечки: {
- x: 600,
- y: 242,
- ширина: 330,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- основаниеТрубыПечки: {
- x: 937,
- y: 175,
- ширина: 130,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- самовар: {
- x: 650,
- y: 300,
- ширина: 70,
- высота: 120,
- вид: {
- background: "url(р/вещи/самовар.png) no-repeat scroll 0% 0% / contain",
- },
- физика: {
- isStatic: false,
- //inertia: Infinity,
- },
- },
- },
- });
-
-
-
- // // // //
- // Подкидывание стрелы
- // // // //
-
-
- мир.разобрать({
- объекты: {
- сенсор: {
- x: 1280,
- y: 400,
- ширина: 120,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- isStatic: true,
- isSensor: true,
- },
- },
- стрела: {
- x: 1230,
- y: 350,
- высота: 30,
- ширина: 200,
- вид: {
- display: "inline-block",
- background: "url(р/вещи/стрела.png) no-repeat scroll 0% 0% / contain",
- transform: "scaleX(-1)",
- },
- физика: {
- isStatic: false,
- inertia: Infinity,
- collisionFilter: {
- category: 4,
- },
- },
- },
- лук: {
- x: 1250,
- y: 200,
- ширина: 100,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- isStatic: true,
- collisionFilter: {
- category: 4,
- },
- },
- },
- },
- столкновения: {
- стрелаНачало: {
- объекты: ["кирпич", "сенсор"],
- событие: "сенсор стрелы",
- },
- стрелаКонец: {
- объекты: ["стрела", "лук"],
- событие: "стрела и лук",
- },
- },
- маскиПрыжков: {
- стрела: {
- объект: "стрела",
- скорость: -1,
- маски: [0, 2|4]
- },
- },
- звуки: {
- зарядкаЛука: {
- события: ["закинули стрелу"],
- файл: "р/звуки/543927__eminyildirim__pistol-gun-cocking.wav",
- },
- },
- });
-
- function ПодкидываниеСтрелы() {
- this.создать = function() {
- this.времяСтрелы = null;
- this.времяПриземления = null;
- this.подкинули = false;
- this.закинули = false;
- this.завершить = null;
-
- мир.события.подписать(this);
- };
-
- this.обработатьСобытие = function(событие) {
- if (событие == "сенсор стрелы")
- {
- this.времяСтрелы = мир.физика.движок.timing.timestamp;
- this.подкинуть();
- }
- else if (событие == "игрок приземлился")
- {
- this.времяПриземления = мир.физика.движок.timing.timestamp;
- this.подкинуть();
- }
- else if (событие == "игрок начал прыжок")
- {
- this.времяСтрелы = null;
- this.времяПриземления = null;
- this.подкинули = false;
- }
- else if (
- (событие == "стрела и лук") &&
- this.закинули &&
- this.завершить
- ) {
- мир.события.уведомить("закинули стрелу");
- мир.события.отписать(this);
- this.завершить();
- }
- };
-
- this.подкинуть = function() {
- if (
- this.подкинули ||
- !this.времяСтрелы ||
- !this.времяПриземления ||
- Math.abs(this.времяСтрелы - this.времяПриземления) > 0.00001 ||
- Math.abs(мир.объекты.тела.стрела.velocity.y) > 0.00001
- ) {
- return;
- }
-
- this.подкинули = true;
- Matter.Body.setVelocity(
- мир.объекты.тела.стрела,
- { x: 0, y: -мир.игрок.приземление.скорость * 1.2 }
- );
-
- if (мир.игрок.приземление.скорость > 16)
- {
- this.закинули = true;
- }
- };
-
- // Конструктор.
- this.создать();
- }
-
- мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
- мир.подкидываниеСтрелы.завершить = function() {
- мир.подкидываниеСтрелы = null;
- };
-
-
- // Запустить звук избы
- мир.события.уведомить("вошли в избу");
-
-
-
- // // // //
- // Отладка событий
- // // // //
-
-
- function ОтладкаСобытий() {
- this.обработатьСобытие = function(событие) {
- if (событие.startsWith("игрокПаук"))
- {
- console.debug("событие", событие);
- }
- };
-
- // Конструктор.
- мир.события.подписать(this);
- }
-
- мир.отладкаСобытий = new ОтладкаСобытий();
-
-
-
- // // // //
- // Пауки
- // // // //
-
- мир.разобрать({
- объекты: {
- паук1: {
- x: 680,
- y: 300,
- ширина: 30,
- вид: {
- background: "url(р/животные/паук.png) no-repeat scroll 0% 0% / contain",
- },
- физика: {
- isStatic: false,
- isSensor: true,
- },
- },
- },
- столкновения: {
- игрокПаук1: {
- объекты: ["кирпич", "паук1"],
- событие: "игрокПаук1",
- },
- проверкаСенсораИгрокаРТ: {
- объекты: ["рт", "паук1"],
- событие: "игрокПаукРТ",
- },
- проверкаСенсораИгрокаРТ1: {
- объекты: ["рт1", "паук1"],
- событие: "игрокПаукРТ1",
- },
- проверкаСенсораИгрокаРТ2: {
- объекты: ["рт2", "паук1"],
- событие: "игрокПаукРТ2",
- },
- },
- движение: {
- паук1: {
- объекты: ["паук1"],
- скорость: [0.7, 1],
- x: [610, 1080],
- y: [350, 450],
- },
- },
- });
|