【发布时间】:2012-01-27 20:43:40
【问题描述】:
我正在研究如何设计我的游戏,以管理/转换不同的“屏幕”以及效果时间。我目前在 Android 上使用 AndEngine,它没有明确的游戏循环,尽管我有兴趣了解这些问题在有或没有游戏循环的情况下是如何处理的。
我已经编写了一个临时系统,用于处理我的游戏中的不同“屏幕”(启动画面、菜单、游戏、选项等),它基于 AndEngine 中的“场景”。我有 3 个基本“场景”,它们充当背景、内容和弹出窗口的图层。每个 Screen 都有 onTransitionIn() 和 onTransitionOut() 方法,当它自己的方法(例如 closePopup() 之类的东西)被调用时,它们由 ScreenManager 调用。但是,转换方法中的所有代码显然会立即运行,这意味着所有动画、屏幕状态等都会立即执行。为了克服这个问题,我在 Android Handler 类中使用了 postDelayed(runnable, delay) 方法。这样,我就能够在过渡动画完成后更改屏幕状态并运行一个又一个动画。现在整个系统几乎都基于通过处理程序运行延迟代码。不出所料,它很粗糙,不是特别稳定并且通常是业余的。
关于“效果计时”的第二个问题与我对 Handler 类的使用密切相关。假设我想在用户完成任务时创建一个效果,播放一些动画并在屏幕上增加一个数字。目前,让一个接一个运行的唯一方法是使用 Handler。如前所述,这在我看来是一种粗略/不稳定/业余的方法。
我真的很想知道这些问题在游戏中通常是如何处理的(无论有无显式循环)。
【问题讨论】:
标签: java android architecture methodology