XNA 3.0初步——自定义游戏循环时间

1.6 自定义游戏循环时间
问题

你想改变调用Update和Draw方法的默认时间间隔。

解决方案

Update 方法默认是每秒钟更新60次,而Draw方法则没有限制,但最大为屏幕刷新率。通过改变Game类的TargetElapsedTime和IsFixedTimeStep静态属性和GraphicsDevice类的SynchronizeWithVerticalRetrace的属性,你就可以改变默认的行为。

工作原理
改变Update频率

默认情况下Update每秒更新60次,或者说每隔16.667毫秒更新一次。你可以通过改变TargetElapsedTime变量改变更新频率: this.TargetElapsedTime = TimeSpan.FromSeconds(1.0f / 100.0f); 当调用到这行代码时,XNA会以每秒100次的频率调用Update方法。你也可以让XNA不按固定时间间隔调用Update方法,要做到这点,需要将Is FixedTimeStep变量设置为false:

this.IsFixedTimeStep = false;
使用IsRunningSlowly

你可以指定Update的更新频率,但如果频率太高,XNA将无法达到,在这种情况下,gameTime. IsRunningSlowly 变量会被设置为true:

Window.Title = gameTime.IsRunningSlowly.ToString();

注意:你应该将gameTime参数传递到Update方法而不是Draw方法去判断gameTime. IsRunningSlowly。

改变Draw频率

当运行程序时,XNA会以尽可能大的频率调用Draw方法,只由下面两个规则限制:

  • 没有必要将调用Draw的频率大于屏幕刷新频率。如果屏幕刷新频率只有每秒100次,每秒绘制110次是无用的。在PC和Xbox360平台上,,屏幕刷新率是由PC屏幕和它的设置决定的,Zune 30每秒刷新60次,其他Zune设备每秒刷新30次。
  • Update方法每秒调用60次。如果游戏计算量太大,Draw方法调用次数会变少以保证Update方法可以每秒调用60次。

在某些情况中,以最大频率调用Draw方法是有用的,例如当决定你的游戏的最大帧频率时,你可以将graphics.SynchronizeWithVerticalRetrace变量设置为true:

graphics.SynchronizeWithVerticalRetrace = false;

注意:你必须在Game1的构造函数顶部加入这行代码,因为XNA需要在创建GraphicsDevice 之前知道这个设置。

理解Update和Draw方法调用频率的重要性

因为你将更新逻辑放置在Update方法中,Update频率的减少会导致游戏中的所有物体变慢,这非常令人讨厌。

当Draw调用频率小于屏幕刷新频率时,只有游戏的视觉表现会暂时受影响,游戏帧频率暂时由每秒100帧降到80帧不容易察觉。

因此,如前所述,如果必要,XNA会降低Draw的频率以保证Update能以每秒60帧的频率调用。

转载于:https://www.cnblogs.com/AlexCheng/archive/2010/09/20/2120201.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘 要 伴随着人才教学的关注度越来越高,对于人才的培养也是当今社会发展的最为重要的问题之一。为了进一步的进行人才的培养关工作,许多的学校或者是教育的机构逐步的开展了网络信息化的教学和和管理工作,通过信息化的手段和技术实现网络信息化的教育及管理模式,通过网络信息化的手段实现在线答题在线考试和学生信息在线的管理等操作。这样更加的快捷解决了人才培养之中的问题,也在进一步的促进了网络信息化教学方式的快速的发展工作。相较于之前的人才教育和培养工作之中,存在这许多的问题和局限性。在学生信息管理方面通过线下管理的形式进行学生信息的管理工作,在此过程之中存在着一定的局限性和低效性,往往一些突发的问题导致其中工作出现错误。导致相关的教育工作受到了一定的阻碍。在学生信息和学生成绩的管理方面,往常的教育模式之下都是采用的是人工线下的进行管理和整理工作,在这一过程之中存在这一定的不安全和低效性,面对与学生基数的越来越大,学生的信息管理也在面领着巨大的挑战,管理人员面领着巨大的学生信息的信息量,运用之前的信息管理方式往往会在统计和登记上出现错误的情况的产生,为后续的管理工作造成了一定的困难。然而通过信息化的管理方式进行对学生信息的管理不仅可以避免这些错误情况的产生还可以进一步的简化学生信息管理工作的流程,节约了大量的人力和物力的之处。在线答题系统的实现不仅给学生的信息管理工作和在线考试带来了方便也进一步的促进了教育事业信息化的发展,从而实现高效化的教学工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值