/* * * Реакции * */ ЗагрузитьРесурсыКолобка= мир => { мир.сцена.load.spritesheet( "колобок", "ресурсы/колобок/колобок.png", { frameWidth: 97, frameHeight: 94, } ); }; // // // // СоздатьКолобка = мир => { мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок"); мир.колобок.depth = 10; мир.колобок.body.setSize(50); // Портит анимацию прыжков! //мир.колобок.setBounceY(0.1); // Следить за колобком камерой. const камера = мир.сцена.cameras.main; камера.startFollow(мир.колобок, false, 0.1, 0.1); }; // // // // СоздатьАнимацииКолобка = мир => { var анимации = мир.сцена.anims; анимации.create({ key: "колобок-неподвижен", frames: [{ key: "колобок", frame: 0 }], frameRate: 20, }) анимации.create({ key: "колобок-движение", frames: мир.сцена.anims.generateFrameNumbers("колобок", { start: 23, end: 1 }), frameRate: 20, repeat: -1, }) анимации.create({ key: "колобок-прыжок", frames: [{ key: "колобок", frame: 24 }], frameRate: 20, }) }; // // // // НастроитьСтолкновениеКолобка = мир => { мир.сцена.physics.add.collider(мир.колобок, мир.каркас); мир.сцена.physics.add.collider(мир.колобок, мир.вещи); мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы); var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги); столкновениеВраги.overlapOnly = true; столкновениеВраги.collideCallback = function(a, b) { мир.уведомить("столкновение с врагом"); }; }; // // // // ПереместитьКолобка = мир => { if (!мир.управление) { мир.колобок.setVelocityX(0); return; } var x = 0; if (мир.управление.направление == -1) { x = -200; мир.колобок.flipX = true; } else if (мир.управление.направление == 1) { x = 200; мир.колобок.flipX = false; } мир.колобок.setVelocityX(x); if (мир.управление.прыжок && мир.колобок.body.touching.down) { мир.колобок.setVelocityY(-570); } }; // // // // АнимироватьКолобка = мир => { var есть = ""; if (мир.колобок.anims.currentAnim) { есть = мир.колобок.anims.currentAnim.key; } var надо = "колобок-неподвижен"; if (мир.управление && мир.управление.прыжок && !мир.колобок.body.touching.down) { надо = "колобок-прыжок"; } else if (мир.колобок.body.velocity.x != 0) { надо = "колобок-движение"; } if (есть != надо) { мир.колобок.anims.play(надо); мир.уведомить("изменили анимацию колобка"); } }; // // // // ОтключитьСтолкновениеСПлатформами = мир => { мир.столкновениеПлатформы.active = false; }; // // // // ВключитьСтолкновениеСПлатформами = мир => { мир.столкновениеПлатформы.active = true; }; // // // // ОстановитьПередвижениеВещей = мир => { var вещи = мир.вещи.getChildren(); for (var н in вещи) { var вещь = вещи[н]; вещь.body.stop(); } }; /* * * Последовательность * */ мир.разобрать(` загрузить ресурсы сцены загрузить ресурсы колобка создать сцену создать колобка создать анимации колобка настроить столкновение колобка изменили управление переместить колобка столкновение с врагом отключить столкновение с платформами обновить сцену анимировать колобка изменили анимацию колобка остановить передвижение вещей `);