【发布时间】:2011-03-15 20:36:32
【问题描述】:
在我的游戏的早期开发过程中,我并没有真正考虑过如果玩家被打断,游戏将如何暂停。我认为它应该不会太难,所以我把它留作我完成游戏核心后会研究的东西。
我现在在这里,无论如何,从我的角度来看,试图找出暂停游戏的方法非常困难。
到目前为止,我遵循了一些教程来达到今天的成就,主要是来自 ASGamer 的教程。可以在该站点上找到的预加载器和菜单屏幕教程是我使用的,到目前为止,我遇到了一些问题,稍后我会问。
无论如何,当用户按下指定键时,我很难理解如何暂停或暂停游戏。我想我应该解释一下我的游戏是如何运作的。
我的主时间轴中有 3 帧。
第一帧用于预加载器,很简单。
第二帧是游戏所在的位置。它有我的资产持有者,我的所有脚本都在该框架上运行。
第三帧是stop();行动。
一旦预加载器完成我的“菜单屏幕”启动,这就是我遵循的教程。它使用 UnLoad() 和 Load() 加载和卸载影片剪辑。
我使用 Load() 加载开始时发生的主菜单,然后使用 UnLoad() 卸载当前菜单然后加载下一个指定菜单,例如 Main Menu -> 我使用的 Game Unload(new GameMenu(stage)); The阶段不断地与这些菜单来回传递,因此有时会让人感到困惑。
在我运行游戏的 GameMenu 中,我创建了一个扩展 MovieClip 的 GamePlay 类。从那里它产生玩家和敌人并像正常游戏一样玩,这就是我的问题开始的地方。
首先,我尝试创建一个按键处理程序来获取用户的按键操作。在某一时刻,按键正在注册,但在我对其他脚本进行了一些更改后,按键不再被识别。所以我将按键移动到我的 Main.as 中,这是我的 fla 使用的主要脚本。键盘事件工作正常,但现在实际上停止了游戏......我什至如何开始?在用户再次按下指定的暂停按钮之前,我必须停止所有影片剪辑和事件侦听器,我将如何完成此操作?
我在某处读到,使用状态机是在任何游戏中暂停的最佳选择,但我不知道如何做到这一点,但我确信我可以阅读教程和博客来制作状态机,但如果我确实添加或制作了一个,我是否必须重做所有代码以适应状态机?
【问题讨论】:
-
可能想把这个发布到:gamedev.stackexchange.com
-
很多 Flash 游戏的大部分动画/物理都基于
ENTER_FRAME事件。所以当游戏需要暂停时,监听器就会被移除。
标签: flash actionscript-3 flash-cs5