|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- /*
- *
- * Реакции
- *
- */
-
-
- ЗагрузитьРесурсыКолобка= мир =>
- {
- мир.сцена.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();
- }
- };
-
-
- /*
- *
- * Последовательность
- *
- */
-
-
- мир.разобрать(`
- загрузить ресурсы сцены
- загрузить ресурсы колобка
- создать сцену
- создать колобка
- создать анимации колобка
- настроить столкновение колобка
- столкновение с врагом
- отключить столкновение с платформами
- обновить сцену
- переместить колобка
- анимировать колобка
- изменили анимацию колобка
- остановить передвижение вещей
- `);
-
|