我正在用 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
,我希望能够检测到上述事件监听器并简单地移动到第二帧,它将显示一条消息,样式为“PLAYER ONE HAS WON”或“PLAYER ONE HAS LOST”,带有一个按钮这将允许我回到角色选择屏幕。这是我陷入困境的第一部分:如何在我的主 .fla 文件中检测调度的事件侦听器?
其次,如果玩家点击“CONTINUE”按钮,无论玩家输赢都会显示,我Menu.fla
(加载Arena.swf
)如何检测到这个点击事件,卸载游戏,然后回到角色选择屏幕?
预先感谢您帮助我。我意识到这是很多文字,但它是我能做到的最具描述性的。如果您对我的问题有任何疑问或需要任何澄清,请随时说出来。
-克里斯托弗