Я делаю файтинг во Flash, и пока у меня все работает, мне чего-то не хватает: экран победы / поражения. Логично, я знаю, как это сделать:
if character.hp < 0
{
character.dead = true;
dispatchevent("death", event)
}
Моя проблема в том, что я понятия не имею, как его кодировать. Я знаю, что буду использовать два класса и два моих файла .fla (если я не ошибаюсь).
У меня есть два файла .fla, которые воспроизводятся здесь: файл Menu.fla
и файл Arena.fla
. Menu.fla
содержит всю навигацию по игре, опции, экраны выбора персонажей и т. Д., И когда игроку пора вступить в бой, он загружает файл Arena.fla
, который содержит только фоны (в зависимости от выбранного Этап) и на данный момент установлен на длину только одного кадра. Для Arena.fla
реальное действие происходит в моих классах, но по логике вещей мне понадобятся только HP.as
и Character.as
.
В Character.as
я объявил следующую переменную:
var isDead:Boolean = false; //is character dead?
В HP.as
, поверьте, у меня должно быть следующее:
if(currentHp<0)
{
currentHp = 0;
character.isDead = true; //declared as var `character:Object;`
EventDispatcher.dispatchEventListener("playerDead", playerDead);
}
И, наконец, в Arena.fla
я хочу иметь возможность обнаружить вышеупомянутый список событий и просто перейти ко второму кадру, в котором будет отображаться сообщение в стиле «ИГРОК ОГРАНИЧЕН» или «ОДИН ИГРОК» «ПОТЕРЯЛ» с кнопкой, которая позволит мне вернуться к экрану выбора персонажа. Это первая часть, в которой я застрял: как я могу обнаружить отправленный обработчик событий в моем основном файле .fla?
Во-вторых, если игрок нажимает кнопку «ПРОДОЛЖИТЬ», которая отображается независимо от того, выиграл игрок или проиграл, как мой Menu.fla
(который загружает Arena.swf
) может обнаружить это событие, выгрузить игру, и вернуться к экрану выбора персонажа?
Заранее спасибо за помощь. Я понимаю, что это много текста, но это самый описательный из всех, что я могу. Если у вас есть какие-либо вопросы или вам нужны разъяснения по моему вопросу, не стесняйтесь говорить.
-Christopher