Browse Source

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

master
parent
commit
7eb5195fb3
1 changed files with 42 additions and 11 deletions
  1. +42
    -11
      800.пример.json.js

+ 42
- 11
800.пример.json.js 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) &&
this.закинули
) {
мир.события.отписать(this);
this.закинули();
if (мир.игрок.приземление.скорость > 16)
{
this.закинули = true;
} }
}; };


@@ -393,6 +403,27 @@ function ПодкидываниеСтрелы() {
} }


мир.подкидываниеСтрелы = new ПодкидываниеСтрелы(); мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
мир.подкидываниеСтрелы.закинули = function() {
мир.подкидываниеСтрелы.завершить = function() {
мир.подкидываниеСтрелы = null; мир.подкидываниеСтрелы = null;
}; };


// // // //
// Отладка событий
// // // //


function ОтладкаСобытий() {
this.обработатьСобытие = function(событие) {
if (событие == "закинули стрелу")
{
console.debug("событие", событие);
}
};

// Конструктор.
мир.события.подписать(this);
}

мир.отладкаСобытий = new ОтладкаСобытий();


Loading…
Cancel
Save