@@ -0,0 +1,20 @@ | |||||
мир.события = { | |||||
обработчики: [], | |||||
подписать: function(обработчик) { | |||||
мир.события.обработчики.push(обработчик); | |||||
}, | |||||
отписать: function(обработчик) { | |||||
var номер = мир.события.обработчики.indexOf(обработчик); | |||||
if (номер != -1) | |||||
{ | |||||
мир.события.обработчики.splice(номер, 1); | |||||
} | |||||
}, | |||||
уведомить: function(событие) { | |||||
for (var номер in мир.события.обработчики) | |||||
{ | |||||
var обработчик = мир.события.обработчики[номер]; | |||||
обработчик.обработатьСобытие(событие); | |||||
} | |||||
}, | |||||
}; |
@@ -74,19 +74,6 @@ | |||||
}; | }; | ||||
// // // // | |||||
/* | |||||
мир.игрок.задатьМаскуСтолкновения = function() | |||||
{ | |||||
var прыжок = мир.игрок.тело.velocity.y < -1; | |||||
var маска = прыжок ? 1 : (1 | 2); | |||||
мир.игрок.тело.collisionFilter.mask = маска; | |||||
}; | |||||
*/ | |||||
// // // / | // // // / | ||||
@@ -95,7 +82,7 @@ | |||||
if (мир.игрок.прыжок.статус == 1) | if (мир.игрок.прыжок.статус == 1) | ||||
{ | { | ||||
мир.игрок.прыжок.статус = 2; | мир.игрок.прыжок.статус = 2; | ||||
мир.действия.совершить("игрокВПрыжке"); | |||||
мир.события.уведомить("игрок в прыжке"); | |||||
} | } | ||||
var нетДвижения = (Math.abs(мир.игрок.тело.velocity.y) < мир.игрок.прыжок.скоростьОтсутствия); | var нетДвижения = (Math.abs(мир.игрок.тело.velocity.y) < мир.игрок.прыжок.скоростьОтсутствия); | ||||
var клавиша = мир.игрок.задано["клавиши.2"]; | var клавиша = мир.игрок.задано["клавиши.2"]; | ||||
@@ -107,7 +94,7 @@ | |||||
) { | ) { | ||||
мир.игрок.прыжок.статус = 1; | мир.игрок.прыжок.статус = 1; | ||||
мир.игрок.приземление.скорость = 0; | мир.игрок.приземление.скорость = 0; | ||||
мир.действия.совершить("игрокНачалПрыжок"); | |||||
мир.события.уведомить("игрок начал прыжок"); | |||||
} | } | ||||
if (мир.игрок.прыжок.статус != 2) | if (мир.игрок.прыжок.статус != 2) | ||||
@@ -129,6 +116,6 @@ | |||||
) { | ) { | ||||
мир.игрок.прыжок.время = сейчас; | мир.игрок.прыжок.время = сейчас; | ||||
мир.игрок.прыжок.статус = 0; | мир.игрок.прыжок.статус = 0; | ||||
мир.действия.совершить("игрокПриземлился"); | |||||
мир.события.уведомить("игрок приземлился"); | |||||
} | } | ||||
}; | }; |
@@ -44,7 +44,7 @@ | |||||
var ст = за[имя]; | var ст = за[имя]; | ||||
var имя1 = ст["объекты.0"]; | var имя1 = ст["объекты.0"]; | ||||
var имя2 = ст["объекты.1"]; | var имя2 = ст["объекты.1"]; | ||||
if (!имя1 || !имя2 || !ст.действие) | |||||
if (!имя1 || !имя2 || !ст.событие) | |||||
{ | { | ||||
continue; | continue; | ||||
} | } | ||||
@@ -62,7 +62,7 @@ | |||||
) { | ) { | ||||
continue; | continue; | ||||
} | } | ||||
мир.действия.совершить(ст.действие); | |||||
мир.события.уведомить(ст.событие); | |||||
} | } | ||||
} | } | ||||
}; | }; |
@@ -340,7 +340,7 @@ console.debug("ИГР ПодкидываниеС.обработатьС", соб | |||||
столкновения: { | столкновения: { | ||||
стрела: { | стрела: { | ||||
объекты: ["кирпич", "сенсор"], | объекты: ["кирпич", "сенсор"], | ||||
действие: "сенсорСтрелы", | |||||
событие: "сенсор стрелы", | |||||
}, | }, | ||||
}, | }, | ||||
действия: { | действия: { | ||||
@@ -35,7 +35,7 @@ | |||||
<script src="140.изображения.js"></script> | <script src="140.изображения.js"></script> | ||||
<script src="160.объекты.js"></script> | <script src="160.объекты.js"></script> | ||||
<script src="180.ввод.js"></script> | <script src="180.ввод.js"></script> | ||||
<script src="300.действия.js"></script> | |||||
<script src="301.события.js"></script> | |||||
<script src="320.игрок.js"></script> | <script src="320.игрок.js"></script> | ||||
<script src="340.слежение.js"></script> | <script src="340.слежение.js"></script> | ||||
<script src="360.маскиПрыжков.js"></script> | <script src="360.маскиПрыжков.js"></script> | ||||