поправить анимации колобка

This commit is contained in:
2021-04-23 14:26:43 +03:00
parent 32b3b1d97f
commit 193ef56eb5

View File

@@ -37,24 +37,8 @@
мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок"); мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
мир.колобок.depth = 10; мир.колобок.depth = 10;
мир.колобок.body.setSize(50); мир.колобок.body.setSize(50);
мир.колобок.setBounceY(0.1); // портит логику анимации.
//мир.колобок.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; const камера = мир.сцена.cameras.main;
@@ -65,6 +49,31 @@
// // // // // // // //
СоздатьАнимацииКолобка = мир =>
{
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(мир.колобок, мир.каркас);
@@ -97,7 +106,6 @@
if (!мир.управление) if (!мир.управление)
{ {
мир.колобок.setVelocityX(0); мир.колобок.setVelocityX(0);
мир.колобок.anims.play("неподвижен");
return; return;
} }
@@ -105,13 +113,11 @@
if (мир.управление.направление == -1) if (мир.управление.направление == -1)
{ {
x = -200; x = -200;
мир.колобок.anims.play("движение");
мир.колобок.flipX = true; мир.колобок.flipX = true;
} }
else if (мир.управление.направление == 1) else if (мир.управление.направление == 1)
{ {
x = 200; x = 200;
мир.колобок.anims.play("движение");
мир.колобок.flipX = false; мир.колобок.flipX = false;
} }
мир.колобок.setVelocityX(x); мир.колобок.setVelocityX(x);
@@ -119,7 +125,30 @@
if (мир.управление.прыжок && мир.колобок.body.touching.down) if (мир.управление.прыжок && мир.колобок.body.touching.down)
{ {
мир.колобок.setVelocityY(-570); мир.колобок.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 @@
создать сцену создать сцену
создать группы сущностей создать группы сущностей
создать колобка создать колобка
создать анимации колобка
определять столкновение колобка и врагов с группами сущностей определять столкновение колобка и врагов с группами сущностей
изменили управление изменили управление
переместить колобка переместить колобка
остановить врагов
столкновение с врагом столкновение с врагом
отключить столкновение с платформами отключить столкновение с платформами
обновить сцену
анимировать колобка
изменили анимацию колобка
остановить врагов
`); `);