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