исключить повтор
This commit is contained in:
@@ -267,26 +267,6 @@
|
|||||||
// Подкидывание стрелы
|
// Подкидывание стрелы
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
function ПодкидываниеСтрелы(мир) {
|
|
||||||
this.создать = function() {
|
|
||||||
мир.события.подписать(this);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.обработатьСобытие = function(событие) {
|
|
||||||
console.debug("ИГР ПодкидываниеС.обработатьС", событие);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Конструктор.
|
|
||||||
this.создать();
|
|
||||||
}
|
|
||||||
|
|
||||||
мир.подстр = new ПодкидываниеСтрелы(мир);
|
|
||||||
|
|
||||||
мир.подкидываниеСтрелы = {
|
|
||||||
сенсор: null,
|
|
||||||
стрела: null,
|
|
||||||
подкинули: false,
|
|
||||||
};
|
|
||||||
|
|
||||||
мир.разобрать({
|
мир.разобрать({
|
||||||
объекты: {
|
объекты: {
|
||||||
@@ -343,43 +323,6 @@ console.debug("ИГР ПодкидываниеС.обработатьС", соб
|
|||||||
событие: "сенсор стрелы",
|
событие: "сенсор стрелы",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
действия: {
|
|
||||||
сенсорСтрелы: [
|
|
||||||
() => {
|
|
||||||
мир.подкидываниеСтрелы.сенсор = мир.физика.движок.timing.timestamp;
|
|
||||||
},
|
|
||||||
"подкинутьСтрелу",
|
|
||||||
],
|
|
||||||
игрокНачалПрыжок: [
|
|
||||||
() => {
|
|
||||||
мир.подкидываниеСтрелы.сенсор = null;
|
|
||||||
мир.подкидываниеСтрелы.стрела = null;
|
|
||||||
мир.подкидываниеСтрелы.подкинули = false;
|
|
||||||
},
|
|
||||||
],
|
|
||||||
игрокПриземлился: [
|
|
||||||
() => { мир.подкидываниеСтрелы.стрела = мир.физика.движок.timing.timestamp; },
|
|
||||||
"подкинутьСтрелу",
|
|
||||||
],
|
|
||||||
подкинутьСтрелу: [
|
|
||||||
() => {
|
|
||||||
if (
|
|
||||||
мир.подкидываниеСтрелы.подкинули ||
|
|
||||||
!мир.подкидываниеСтрелы.стрела ||
|
|
||||||
!мир.подкидываниеСтрелы.сенсор ||
|
|
||||||
Math.abs(мир.подкидываниеСтрелы.стрела - мир.подкидываниеСтрелы.сенсор) > 0.00001 ||
|
|
||||||
Math.abs(мир.объекты.тела.стрела.velocity.y) > 0.00001
|
|
||||||
) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
мир.подкидываниеСтрелы.подкинули = true;
|
|
||||||
Matter.Body.setVelocity(
|
|
||||||
мир.объекты.тела.стрела,
|
|
||||||
{ x: 0, y: -мир.игрок.приземление.скорость * 1.2 }
|
|
||||||
);
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
маскиПрыжков: {
|
маскиПрыжков: {
|
||||||
стрела: {
|
стрела: {
|
||||||
объект: "стрела",
|
объект: "стрела",
|
||||||
@@ -388,3 +331,68 @@ console.debug("ИГР ПодкидываниеС.обработатьС", соб
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function ПодкидываниеСтрелы() {
|
||||||
|
this.создать = function() {
|
||||||
|
this.времяСтрелы = null;
|
||||||
|
this.времяПриземления = null;
|
||||||
|
this.подкинули = false;
|
||||||
|
this.закинули = null;
|
||||||
|
|
||||||
|
мир.события.подписать(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.обработатьСобытие = function(событие) {
|
||||||
|
if (событие == "сенсор стрелы")
|
||||||
|
{
|
||||||
|
this.времяСтрелы = мир.физика.движок.timing.timestamp;
|
||||||
|
this.подкинуть();
|
||||||
|
}
|
||||||
|
else if (событие == "игрок приземлился")
|
||||||
|
{
|
||||||
|
this.времяПриземления = мир.физика.движок.timing.timestamp;
|
||||||
|
this.подкинуть();
|
||||||
|
}
|
||||||
|
else if (событие = "игрок начал прыжок")
|
||||||
|
{
|
||||||
|
this.времяСтрелы = null;
|
||||||
|
this.времяПриземления = null;
|
||||||
|
this.подкинули = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.подкинуть = function() {
|
||||||
|
if (
|
||||||
|
this.подкинули ||
|
||||||
|
!this.времяСтрелы ||
|
||||||
|
!this.времяПриземления ||
|
||||||
|
Math.abs(this.времяСтрелы - this.времяПриземления) > 0.00001 ||
|
||||||
|
Math.abs(мир.объекты.тела.стрела.velocity.y) > 0.00001
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.подкинули = true;
|
||||||
|
Matter.Body.setVelocity(
|
||||||
|
мир.объекты.тела.стрела,
|
||||||
|
{ x: 0, y: -мир.игрок.приземление.скорость * 1.2 }
|
||||||
|
);
|
||||||
|
|
||||||
|
// Уведомить о достижении нужной скорости.
|
||||||
|
if (
|
||||||
|
(мир.игрок.приземление.скорость > 16) &&
|
||||||
|
this.закинули
|
||||||
|
) {
|
||||||
|
мир.события.отписать(this);
|
||||||
|
this.закинули();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Конструктор.
|
||||||
|
this.создать();
|
||||||
|
}
|
||||||
|
|
||||||
|
мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
|
||||||
|
мир.подкидываниеСтрелы.закинули = function() {
|
||||||
|
мир.подкидываниеСтрелы = null;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user