Browse Source

переиначить остановку

master
parent
commit
43ffa72790
3 changed files with 56 additions and 40 deletions
  1. +22
    -38
      игра/110.колобок.js
  2. +2
    -2
      игра/111.изба.js
  3. +32
    -0
      игра/112.подпол.js

+ 22
- 38
игра/110.колобок.js View File

@@ -94,16 +94,18 @@
мир.столкновениеВещи.collideCallback = function(a, вещь) { мир.столкновениеВещи.collideCallback = function(a, вещь) {
var кк = мир.колобок.body.touching; var кк = мир.колобок.body.touching;
var кв = вещь.body.touching; var кв = вещь.body.touching;

if (!мир.передвигаемыеВещи)
{
мир.передвигаемыеВещи = { };
}
мир.передвигаемыеВещи[вещь.name] = new Date();

if (кк.down && кв.up && мир.колобок.прыжок) if (кк.down && кв.up && мир.колобок.прыжок)
{ {
мир.колобок.вещь = вещь.name; мир.колобок.вещь = вещь.name;
мир.уведомить("колобок прыгнул на вещь"); мир.уведомить("колобок прыгнул на вещь");
} }
// Передвижение вещей.
if (кк.down && (кк.left || кк.right) && (кв.left || кв.right))
{
мир.колобок.датаПередвиженияВещи = new Date();
}
}; };


var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги); var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
@@ -236,23 +238,6 @@
// // // // // // // //




ОстановитьПередвижениеВещей = мир =>
{
var вещи = мир.вещи.getChildren();
for (var н in вещи)
{
var вещь = вещи[н];
if (вещь.body.touching.down)
{
вещь.body.stop();
}
}
};


// // // //


НачатьМиганиеКолобка = мир => НачатьМиганиеКолобка = мир =>
{ {
var конец = new Date(); var конец = new Date();
@@ -344,29 +329,29 @@
// // // // // // // //




ОпределитьПередвижениеВещей = мир =>
ОстановитьСкользящиеВещи = мир =>
{ {
if (!мир.колобок.датаПередвиженияВещи)
if (!мир.передвигаемыеВещи)
{ {
return; return;
} }


var было = мир.колобок.передвижениеВещи != null ? мир.колобок.передвижениеВещи : false;
var стало = new Date() - мир.колобок.датаПередвиженияВещи < 10;
if (было != стало)
var сейчас = new Date();
for (var имя in мир.передвигаемыеВещи)
{ {
мир.колобок.передвижениеВещи = стало;
if (стало)
var было = мир.передвигаемыеВещи[имя];
var узел = мир.узелСцены(имя);
if (узел && (сейчас - было > 20))
{ {
console.debug("колобок начал передвижение вещи");
мир.уведомить("колобок начал передвижение вещи");
}
else
{
console.debug("колобок закончил передвижение вещи");
мир.уведомить("колобок закончил передвижение вещи");
узел.body.stop();
delete мир.передвигаемыеВещи[имя];
} }
} }

if (!Object.keys(мир.передвигаемыеВещи).length)
{
мир.передвигаемыеВещи = null;
}
}; };




@@ -391,8 +376,7 @@
анимировать колобка анимировать колобка
определить окончание прыжка колобка определить окончание прыжка колобка
мигать колобка мигать колобка
определить передвижение вещей
# остановить передвижение вещей
остановить скользящие вещи
колобок начал прыжок колобок начал прыжок
воспроизвести звук прыжка воспроизвести звук прыжка
вывести начало прыжка в консоль вывести начало прыжка в консоль


+ 2
- 2
игра/111.изба.js View File

@@ -297,8 +297,8 @@
x: 200, x: 200,
y: 200, y: 200,
texture: "самовар", texture: "самовар",
scaleX: 0.25,
scaleY: 0.25,
scaleX: 0.2,
scaleY: 0.2,
depth: 5, depth: 5,
}, },




+ 32
- 0
игра/112.подпол.js View File

@@ -22,6 +22,13 @@


ЗадатьСтруктуруПодпола = мир => ЗадатьСтруктуруПодпола = мир =>
{ {
function платформаПрыжков(узел) {
var ограничить = узел.body.checkCollision;
ограничить.down = false;
ограничить.left = false;
ограничить.right = false;
}

мир.подпол = { мир.подпол = {
полПодпола: { полПодпола: {
родитель: мир.каркас, родитель: мир.каркас,
@@ -73,6 +80,7 @@
ступенька1: { ступенька1: {
родитель: мир.платформы, родитель: мир.платформы,
тип: "платформа", тип: "платформа",
после: платформаПрыжков,
x: 125, x: 125,
y: 980, y: 980,
texture: "основа", texture: "основа",
@@ -81,6 +89,30 @@
scaleX: 5, scaleX: 5,
visible: true, visible: true,
}, },
ступенька2: {
родитель: мир.платформы,
тип: "платформа",
после: платформаПрыжков,
x: 125,
y: 865,
texture: "основа",
originX: 0,
originY: 0,
scaleX: 5,
visible: true,
},
ступенька3: {
родитель: мир.платформы,
тип: "платформа",
после: платформаПрыжков,
x: 125,
y: 750,
texture: "основа",
originX: 0,
originY: 0,
scaleX: 5,
visible: true,
},
}; };
}; };




Loading…
Cancel
Save