diff --git a/301.события.js b/301.события.js
new file mode 100644
index 0000000..a16a68c
--- /dev/null
+++ b/301.события.js
@@ -0,0 +1,20 @@
+мир.события = {
+ обработчики: [],
+ подписать: function(обработчик) {
+ мир.события.обработчики.push(обработчик);
+ },
+ отписать: function(обработчик) {
+ var номер = мир.события.обработчики.indexOf(обработчик);
+ if (номер != -1)
+ {
+ мир.события.обработчики.splice(номер, 1);
+ }
+ },
+ уведомить: function(событие) {
+ for (var номер in мир.события.обработчики)
+ {
+ var обработчик = мир.события.обработчики[номер];
+ обработчик.обработатьСобытие(событие);
+ }
+ },
+};
diff --git a/320.игрок.js b/320.игрок.js
index 5184e02..dda0ebb 100644
--- a/320.игрок.js
+++ b/320.игрок.js
@@ -74,19 +74,6 @@
};
-// // // //
-
-
-/*
-мир.игрок.задатьМаскуСтолкновения = function()
-{
- var прыжок = мир.игрок.тело.velocity.y < -1;
- var маска = прыжок ? 1 : (1 | 2);
- мир.игрок.тело.collisionFilter.mask = маска;
-};
-*/
-
-
// // // /
@@ -95,7 +82,7 @@
if (мир.игрок.прыжок.статус == 1)
{
мир.игрок.прыжок.статус = 2;
- мир.действия.совершить("игрокВПрыжке");
+ мир.события.уведомить("игрок в прыжке");
}
var нетДвижения = (Math.abs(мир.игрок.тело.velocity.y) < мир.игрок.прыжок.скоростьОтсутствия);
var клавиша = мир.игрок.задано["клавиши.2"];
@@ -107,7 +94,7 @@
) {
мир.игрок.прыжок.статус = 1;
мир.игрок.приземление.скорость = 0;
- мир.действия.совершить("игрокНачалПрыжок");
+ мир.события.уведомить("игрок начал прыжок");
}
if (мир.игрок.прыжок.статус != 2)
@@ -129,6 +116,6 @@
) {
мир.игрок.прыжок.время = сейчас;
мир.игрок.прыжок.статус = 0;
- мир.действия.совершить("игрокПриземлился");
+ мир.события.уведомить("игрок приземлился");
}
};
diff --git a/400.столкновения.js b/400.столкновения.js
index 147d58e..45acaf6 100644
--- a/400.столкновения.js
+++ b/400.столкновения.js
@@ -44,7 +44,7 @@
var ст = за[имя];
var имя1 = ст["объекты.0"];
var имя2 = ст["объекты.1"];
- if (!имя1 || !имя2 || !ст.действие)
+ if (!имя1 || !имя2 || !ст.событие)
{
continue;
}
@@ -62,7 +62,7 @@
) {
continue;
}
- мир.действия.совершить(ст.действие);
+ мир.события.уведомить(ст.событие);
}
}
};
diff --git a/800.пример.json.js b/800.пример.json.js
index 4b3461d..073aaa2 100644
--- a/800.пример.json.js
+++ b/800.пример.json.js
@@ -340,7 +340,7 @@ console.debug("ИГР ПодкидываниеС.обработатьС", соб
столкновения: {
стрела: {
объекты: ["кирпич", "сенсор"],
- действие: "сенсорСтрелы",
+ событие: "сенсор стрелы",
},
},
действия: {
diff --git a/index.html b/index.html
index 1d3be41..0aba45a 100644
--- a/index.html
+++ b/index.html
@@ -35,7 +35,7 @@
-
+