diff --git a/игра/109.управление.js b/игра/109.управление.js index c50f60e..9bf6e3c 100644 --- a/игра/109.управление.js +++ b/игра/109.управление.js @@ -56,7 +56,7 @@ { новое.направление = 1; } - if (мир.клавиши.space.isDown) + if (мир.клавиши.space.isDown || мир.клавиши.up.isDown) { новое.прыжок = true; } diff --git a/игра/110.колобок.js b/игра/110.колобок.js index daa629f..c26882c 100644 --- a/игра/110.колобок.js +++ b/игра/110.колобок.js @@ -22,10 +22,11 @@ // // // // -СоздатьКаркасИПлатформы = мир => +СоздатьГруппыСущностей = мир => { мир.каркас = мир.сцена.physics.add.staticGroup(); мир.платформы = мир.сцена.physics.add.staticGroup(); + //мир.враги = мир.сцена.add.group(); }; @@ -34,8 +35,10 @@ СоздатьКолобка = мир => { - мир.колобок = мир.сцена.physics.add.sprite(100, 100, "колобок"); + мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок"); мир.колобок.depth = 10; + мир.колобок.body.setSize(50); + мир.колобок.setBounceY(0.1); мир.сцена.anims.create({ key: "неподвижен", @@ -63,10 +66,34 @@ // // // // -СоздатьСтолкновениеКолобкаСКаркасомИПлатформами = мир => +ОпределятьСтолкновениеКолобкаИВраговСГруппамиСущностей = мир => { мир.сцена.physics.add.collider(мир.колобок, мир.каркас); мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы); + + /* + мир.сцена.physics.add.collider(мир.враги, мир.каркас); + мир.сцена.physics.add.collider(мир.враги, мир.платформы); + */ + + var враг = мир.сцена.physics.add.sprite(150, 400, "основа"); + враг.setScale(5, 5).refreshBody(); + враг.depth = 10; + мир.сцена.physics.add.collider(враг, мир.каркас); + //мир.сцена.physics.add.collider(враг, мир.платформы); + + + + + + + /* + var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги); + столкновениеВраги.collideCallback = function(a, b) { + мир.уведомить("столкновение с врагом"); + console.debug("столкновение с врагом"); + }; + */ }; @@ -105,6 +132,22 @@ }; +// // // // + + +ОтключитьСтолкновениеСПлатформами = мир => { + мир.столкновениеПлатформы.active = false; +}; + + +// // // // + + +ВключитьСтолкновениеСПлатформами = мир => { + мир.столкновениеПлатформы.active = true; +}; + + /* * * Последовательность @@ -116,10 +159,12 @@ загрузить ресурсы сцены загрузить ресурсы колобка создать сцену - создать каркас и платформы + создать группы сущностей создать колобка - создать столкновение колобка с каркасом и платформами + определять столкновение колобка и врагов с группами сущностей изменили управление переместить колобка +столкновение с врагом + отключить столкновение с платформами `); diff --git a/игра/111.изба.js b/игра/111.изба.js index a333970..933125c 100644 --- a/игра/111.изба.js +++ b/игра/111.изба.js @@ -85,24 +85,24 @@ ширина: 65, }, { - x: 665, + x: 666, y: 340, - ширина: 1, + ширина: 3, }, { - x: 770, + x: 771, y: 340, - ширина: 1, + ширина: 3, }, { - x: 860, + x: 862, y: 340, - ширина: 1, + ширина: 3, }, { - x: 1005, - y: 355, - ширина: 1, + x: 995, + y: 350, // НАДО 345, чтобы не допрыгиать без помощи кота. + ширина: 4, }, { x: 620, @@ -130,7 +130,7 @@ var часть = п[номер]; var элемент = мир.платформы.create(часть.x, часть.y, "основа").setOrigin(0, 0); элемент.setScale(часть.ширина, 1).refreshBody(); - //элемент.setVisible(false); + элемент.setVisible(false); } }; @@ -148,6 +148,25 @@ }; +// // // // + + +СоздатьВрагов = мир => { + + console.debug("создать врагов"); + /* + var враг = мир.сцена.physics.add.sprite(150, 100, "основа"); + //мир.враги.add(враг); + + мир.сцена.physics.add.collider(враг, мир.каркас); + мир.сцена.physics.add.collider(враг, мир.платформы); + */ + + //var враг = мир.враги.create(100, 100, "основа");//.setOrigin(0, 0); + //враг.setScale(часть.ширина, 1).refreshBody(); +}; + + /* * * Последовательность @@ -163,5 +182,6 @@ создать полы и стены каркаса создать платформы позволить платформам пропускать прыжки + создать врагов `);