|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- /*
- *
- * Реакции
- *
- */
-
-
- ЗагрузитьРесурсыКолобка= мир =>
- {
- мир.сцена.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(750, 100, "основа");
- враг.setScale(5, 5).refreshBody();
- враг.depth = 10;
- мир.враги.add(враг);
-
-
- var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
- столкновениеВраги.overlapOnly = true;
- столкновениеВраги.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;
- };
-
-
- // // // //
-
-
- ОстановитьВрагов = мир => {
- var враги = мир.враги.getChildren();
- for (var н in враги)
- {
- var враг = враги[н];
- враг.body.stop();
- }
- };
-
-
- /*
- *
- * Последовательность
- *
- */
-
-
- мир.разобрать(`
- загрузить ресурсы сцены
- загрузить ресурсы колобка
- создать сцену
- создать группы сущностей
- создать колобка
- определять столкновение колобка и врагов с группами сущностей
- изменили управление
- переместить колобка
- остановить врагов
- столкновение с врагом
- отключить столкновение с платформами
- `);
-
|