-
第十章
游戏循环的设计
前面的几章中,
p>
曾多次提到游戏循环,
这一章就让我们一起了解游戏循环的相关
p>
概念,学习如何使用游戏循环。
我们知道
,
游戏的主体通常在一个循环体中,
最初,
我们用一个变量来表示游戏
的状态,比如
gameState =
STATE_STARTMENU
;
每
次循环都判断当前状态,调用不同
的函数进行处理。这种方法简单有效,所
有的逻辑代码都在一个类里,不必考虑隐藏和划
分,只需要定义一些函数即可。
但是它的
优点也是它的缺点,这种结构化的方法通常让程序显得很大,有些混
乱。所以我们采
用另一种方式管理游戏循环,将场景(
Scene
)的概念引入
程序
中。
我
们可以认为一个游戏由一些独立的场景组成,如开始菜单,游戏中画面,过
关画面等等都可以是场景,
而整个游戏就在这些场景之间不断切换,
直到退出为
止。场景
这个词用在这里非常贴切,所有游戏的元素,不论是选项菜单还是玩
家角色,都像是舞台
上的演员
(Actor)
,他们根据不同的场景登上舞台或离开
舞
台。有了
场景的支持,演员们不再
挤在一起,而是被划分成一组一组的,彼此
隔离,这样会让程序变得清晰有序,而游戏循
环就变成了场景循环。
我们首先创建一个
SceneBase
类,作为所有
Scene
的基类:
public
abstract
class
SceneBase {
abstract
public
void
tick();
abstract
public
void
update(Canvas c);
}
其中
tick
为一个动画帧,
让所有演员做出动作。
update
将演员们显示在舞台上。
然后,我们在
p>
GameView
建立一个
SceneBa
se
类型的变量来表示当前的场景,只
有当前的场景才会被绘制
。
static
SceneBase
currentScene
;
……
if
(c !=
null
) {
currentScene
.tick();
-
-
-
-
-
-
-
-
-
上一篇:沉睡魔咒台词
下一篇:七年级下学期期中考试英语试题(含答案)