сигнал приземления стрелы на лук

This commit is contained in:
2021-07-29 15:18:16 +03:00
parent 6f5e85d20f
commit 7eb5195fb3

View File

@@ -318,10 +318,14 @@
}, },
}, },
столкновения: { столкновения: {
стрела: { стрелаНачало: {
объекты: ["кирпич", "сенсор"], объекты: ["кирпич", "сенсор"],
событие: "сенсор стрелы", событие: "сенсор стрелы",
}, },
стрелаКонец: {
объекты: ["стрела", "лук"],
событие: "стрела и лук",
},
}, },
маскиПрыжков: { маскиПрыжков: {
стрела: { стрела: {
@@ -337,7 +341,8 @@ function ПодкидываниеСтрелы() {
this.времяСтрелы = null; this.времяСтрелы = null;
this.времяПриземления = null; this.времяПриземления = null;
this.подкинули = false; this.подкинули = false;
this.закинули = null; this.закинули = false;
this.завершить = null;
мир.события.подписать(this); мир.события.подписать(this);
}; };
@@ -353,12 +358,21 @@ function ПодкидываниеСтрелы() {
this.времяПриземления = мир.физика.движок.timing.timestamp; this.времяПриземления = мир.физика.движок.timing.timestamp;
this.подкинуть(); this.подкинуть();
} }
else if (событие = "игрок начал прыжок") else if (событие == "игрок начал прыжок")
{ {
this.времяСтрелы = null; this.времяСтрелы = null;
this.времяПриземления = null; this.времяПриземления = null;
this.подкинули = false; this.подкинули = false;
} }
else if (
(событие == "стрела и лук") &&
this.закинули &&
this.завершить
) {
мир.события.уведомить("закинули стрелу");
мир.события.отписать(this);
this.завершить();
}
}; };
this.подкинуть = function() { this.подкинуть = function() {
@@ -378,13 +392,9 @@ function ПодкидываниеСтрелы() {
{ x: 0, y: -мир.игрок.приземление.скорость * 1.2 } { x: 0, y: -мир.игрок.приземление.скорость * 1.2 }
); );
// Уведомить о достижении нужной скорости. if (мир.игрок.приземление.скорость > 16)
if ( {
(мир.игрок.приземление.скорость > 16) && this.закинули = true;
this.закинули
) {
мир.события.отписать(this);
this.закинули();
} }
}; };
@@ -393,6 +403,27 @@ function ПодкидываниеСтрелы() {
} }
мир.подкидываниеСтрелы = new ПодкидываниеСтрелы(); мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
мир.подкидываниеСтрелы.закинули = function() { мир.подкидываниеСтрелы.завершить = function() {
мир.подкидываниеСтрелы = null; мир.подкидываниеСтрелы = null;
}; };
// // // //
// Отладка событий
// // // //
function ОтладкаСобытий() {
this.обработатьСобытие = function(событие) {
if (событие == "закинули стрелу")
{
console.debug("событие", событие);
}
};
// Конструктор.
мир.события.подписать(this);
}
мир.отладкаСобытий = new ОтладкаСобытий();