From 193ef56eb5b829634b9f94805f96ab3f47b278ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Fri, 23 Apr 2021 14:26:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0=D1=86=D0=B8=D0=B8?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BB=D0=BE=D0=B1=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- игра/110.колобок.js | 65 +++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/игра/110.колобок.js b/игра/110.колобок.js index 4a00e1f..3da0a89 100644 --- a/игра/110.колобок.js +++ b/игра/110.колобок.js @@ -37,28 +37,37 @@ мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок"); мир.колобок.depth = 10; мир.колобок.body.setSize(50); - мир.колобок.setBounceY(0.1); + // портит логику анимации. + //мир.колобок.setBounceY(0.1); - мир.сцена.anims.create({ - key: "неподвижен", + // Следить за колобком камерой. + const камера = мир.сцена.cameras.main; + камера.startFollow(мир.колобок, false, 0.1, 0.1); +}; + + +// // // // + + +СоздатьАнимацииКолобка = мир => +{ + var анимации = мир.сцена.anims; + анимации.create({ + key: "колобок-неподвижен", frames: [{ key: "колобок", frame: 0 }], frameRate: 20, }) - мир.сцена.anims.create({ - key: "движение", + анимации.create({ + key: "колобок-движение", frames: мир.сцена.anims.generateFrameNumbers("колобок", { start: 23, end: 1 }), frameRate: 20, repeat: -1, }) - мир.сцена.anims.create({ - key: "прыжок", + анимации.create({ + key: "колобок-прыжок", frames: [{ key: "колобок", frame: 24 }], frameRate: 20, }) - - // Следить за колобком камерой. - const камера = мир.сцена.cameras.main; - камера.startFollow(мир.колобок, false, 0.1, 0.1); }; @@ -97,7 +106,6 @@ if (!мир.управление) { мир.колобок.setVelocityX(0); - мир.колобок.anims.play("неподвижен"); return; } @@ -105,13 +113,11 @@ if (мир.управление.направление == -1) { x = -200; - мир.колобок.anims.play("движение"); мир.колобок.flipX = true; } else if (мир.управление.направление == 1) { x = 200; - мир.колобок.anims.play("движение"); мир.колобок.flipX = false; } мир.колобок.setVelocityX(x); @@ -119,7 +125,30 @@ if (мир.управление.прыжок && мир.колобок.body.touching.down) { мир.колобок.setVelocityY(-570); - мир.колобок.anims.play("прыжок"); + } +}; + + +// // // // + + +АнимироватьКолобка = мир => { + var есть = ""; + if (мир.колобок.anims.currentAnim) + { + есть = мир.колобок.anims.currentAnim.key; + } + + var надо = "колобок-неподвижен"; + if (!мир.колобок.body.touching.down) { + надо = "колобок-прыжок"; + } else if (мир.колобок.body.velocity.x != 0) { + надо = "колобок-движение"; + } + + if (есть != надо) { + мир.колобок.anims.play(надо); + мир.уведомить("изменили анимацию колобка"); } }; @@ -166,11 +195,15 @@ создать сцену создать группы сущностей создать колобка + создать анимации колобка определять столкновение колобка и врагов с группами сущностей изменили управление переместить колобка - остановить врагов столкновение с врагом отключить столкновение с платформами +обновить сцену + анимировать колобка +изменили анимацию колобка + остановить врагов `);