diff --git a/игра/110.колобок.js b/игра/110.колобок.js index a641607..7687283 100644 --- a/игра/110.колобок.js +++ b/игра/110.колобок.js @@ -14,9 +14,10 @@ // // // // -СоздатьКаркас = мир => +СоздатьКаркасИПлатформы = мир => { мир.каркас = мир.сцена.physics.add.staticGroup(); + мир.платформы = мир.сцена.physics.add.staticGroup(); }; @@ -27,7 +28,6 @@ { мир.колобок = мир.сцена.physics.add.sprite(100, 100, "колобок"); мир.колобок.depth = 10; - //мир.колобок.setBounce(0.1); // Следить за колобком камерой. const камера = мир.сцена.cameras.main; @@ -35,14 +35,13 @@ }; - - // // // // -СоздатьСтолкновениеКолобкаСКаркасом = мир => +СоздатьСтолкновениеКолобкаСКаркасомИПлатформами = мир => { мир.сцена.physics.add.collider(мир.колобок, мир.каркас); + мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы); }; @@ -70,7 +69,7 @@ if (мир.управление.прыжок && мир.колобок.body.touching.down) { - мир.колобок.setVelocityY(-500); + мир.колобок.setVelocityY(-570); } }; @@ -86,9 +85,9 @@ загрузить ресурсы сцены загрузить ресурсы колобка создать сцену - создать каркас + создать каркас и платформы создать колобка - создать столкновение колобка с каркасом + создать столкновение колобка с каркасом и платформами изменили управление переместить колобка `); diff --git a/игра/111.изба.js b/игра/111.изба.js index 444635d..5b16907 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -18,23 +18,93 @@ СоздатьИзбу = мир => { мир.сцена.add.image(0, 0, "изба").setOrigin(0, 0); +}; + + +// // // // + - var полСлева = мир.каркас.create(0, 585, "основа").setOrigin(0, 0); - полСлева.setScale(43, 1).refreshBody(); - полСлева.setVisible(false); - var полСправа = мир.каркас.create(510, 585, "основа").setOrigin(0, 0); - полСправа.setScale(200, 1).refreshBody(); - полСправа.setVisible(false); - мир.полКрышки = мир.каркас.create(300, 585, "основа").setOrigin(0, 0); - мир.полКрышки.setScale(30, 1).refreshBody(); - мир.полКрышки.setVisible(false); - - var стенаСлева = мир.каркас.create(0, 385, "основа"); - стенаСлева.setScale(1, 50).refreshBody(); - стенаСлева.setVisible(false); - var стенаСправа = мир.каркас.create(2000, 385, "основа"); - стенаСправа.setScale(1, 50).refreshBody(); - стенаСправа.setVisible(false); +СоздатьПолыИСтеныКаркаса = мир => +{ + var полы = [ + { + x: 0, + y: 585, + ширина: 43, + }, + { + x: 300, + y: 585, + ширина: 30, + }, + { + x: 510, + y: 585, + ширина: 200, + }, + ]; + for (var номер in полы) + { + var пол = полы[номер]; + var элемент = мир.каркас.create(пол.x, пол.y, "основа").setOrigin(0, 0); + элемент.setScale(пол.ширина, 1).refreshBody(); + элемент.setVisible(false); + } + + var стены = [ + { + x: 0, + y: 385, + высота: 50, + }, + { + x: 2000, + y: 385, + высота: 50, + }, + ]; + for (var номер in стены) + { + var стена = стены[номер]; + var элемент = мир.каркас.create(стена.x, стена.y, "основа"); + элемент.setScale(1, стена.высота).refreshBody(); + элемент.setVisible(false); + } +}; + + +// // // // + + +СоздатьПлатформы = мир => +{ + var печь = [ + { + x: 583, + y: 470, + ширина: 65, + }, + ]; + for (var номер in печь) + { + var часть = печь[номер]; + var элемент = мир.платформы.create(часть.x, часть.y, "основа").setOrigin(0, 0); + элемент.setScale(часть.ширина, 1).refreshBody(); + //элемент.setVisible(false); + } +}; + + +// // // // + + +ПозволитьПлатформамПропускатьПрыжки = мир => +{ + мир.платформы.children.iterate(function(платформа) { + платформа.body.checkCollision.down = false; + платформа.body.checkCollision.left = false; + платформа.body.checkCollision.right = false; + }); }; @@ -50,5 +120,8 @@ загрузить ресурсы избы создать сцену создать избу + создать полы и стены каркаса + создать платформы + позволить платформам пропускать прыжки `);