第一章 第九节 玩游戏

玩游戏

一旦进入主游戏状态,游戏真正开始。游戏循环开始执行只要玩家进入这个阶段。游戏循环包括以下的一般步骤:

n         处理玩家输入

n         计算自动玩家(NPC?)行为

n         更新所有动态模型

n         如果是多玩家模式,和其他玩家交换状态信息(不包含在示例游戏引擎中)

n         渲染下一帧

这些步骤构成了游戏循环,它一直执行,只要游戏是在游戏状态。第一个步骤与在选项屏幕定义的控制参数一起工作。这些参数映射鼠标,操纵杆或者按键行为到游戏控制函数,包括移动控制,武器控制,如果可用的话,以及游戏状态控制(保存游戏,退出游戏,激活游戏控制台等等)。

第二个步骤为任意的计算机控制模型提供了类似的控制函数。通过和玩家控制的模型同一级别真实度上对自动模型的控制,它提供了几个正面因素。通过消除复制以创建两个分离的版本来支持玩家控制和自动控制模型,简化了动态部分的软件。另一个好处是通过保持玩家和自动控制对手同一个级别获得了保真度。

 

下一个步骤,我们需要更新所有的动态模型。也就是说,任何需要移动的东西必须移动。支持IDynamic接口的对象拥有Update方法,调用它来计算新的位置或者动画的序列。一旦所有对象被更新了,我们基本上可以绘制屏幕了。在我们进入渲染前,需要坚持,看是否是多玩家游戏。如果是,我们必须发生所有本地控制器对象到其他玩家,并且接受发生给我们的更新状态。

 

现在,我们终于可以更新屏幕了。每个对象的Render方法被调用。调用的顺序对一些对象而言很重要。在第四章将看到,SkyBox对象(游戏中如果存在)应该总是最先绘制,以便它出现在背景。用户接口和控制台对象应该最后绘制,以便它们出现在场景的最上面。如果现在你对这些内容感到困惑,不要惊慌。在本身中我们建造游戏引擎过程中,上面的每一步我们都会详细阐述。

 

当所有对象被绘制,我们需要做个决定。游戏结束了吗?如果没有,我们返回到处理玩家输入的那一步,并且继续重复游戏循环。如果游戏结束了,该处理下一个阶段了——玩家得分。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值