- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图9Three纺环什么都没有比这更好!调整项目帧率铃响
图2 - 9.Three纺环...什么都没有比这更好!调整项目帧率铃响三声动画虽然看起来相当不错,当您执行,可能有一段时间当你的动画运行过快或过慢,你想改变它的动画速度:。我前面提到的帧率,但这里有一个快速提醒帧率一般是指第二个游戏多少次,每次重绘整个场景。在XNA,默认为60)帧每秒(fps。除非你运行速度非常慢的机器上当前的项目,你最有可能看到这三个环形象工程被画在60帧。也有不同类型的帧率,有关个别动画。这帧率(通常称为速度为动画)反映精灵片的速度给定的周期,通过动画形象研究。现在,你的戒指形象动画的转速,三是60帧,因为你是绘图板的精灵,从一个新的形象每次重绘场景(这是发生在60帧)。|调整帧率35有几种不同的方法可以改变你的戒指动画动画速度届。新华社的游戏类有一个属性叫做TargetElapsedTime长的T XNAhow之间等待方法调用到Game.Update。从本质上讲,代表帧之间的时间量每一个被绘制。默认情况下这是1 / 60秒的,这给新华社默认的60帧:。若要更改帧率项目,代码恩theGame1在添加下面一行的构造TargetElapsedTime =新的TimeSpan(0,0,0 ,0,50);这告诉XNAto只能叫Game.Update每隔50毫秒,相当于20吨fps的帧率。编译并运行它的游戏,你应该看到相同的戒指动画日,但在动画速度慢得多。实验值与不同构造的时间范围(例如,1毫秒),看看表,通过精灵动画周期有多快。理想,你要保持帧率单独帧率60帧左右,这意味着您通常保留默认。为什么是60秒每帧的圣dard?这是人眼最低刷新率设置监视器或电视不会闪烁观看时的明镜。如果你把帧率太高,XNAcant保证你有你希望健表现。 GPU的速度的图形卡,消耗速度电脑的处理器,您的号码资源,并且代码速度的Y,去一个P性能漫长的道路走向确定是否你的游戏将具有。幸运的是,XNAhas提供了途径检测如果你的游戏的问题患有每曼斯。该GameTime对象,它是通过一个更新参数都和绘制方法,有一个布尔属性叫做IsRunningSlowly。能在这段时间的检查方法,如在任何财产的价值是真实的,X是无法跟上与您所指定的帧率。在这种情况下,新华社实际上跳过抽奖地努力在继续加快与您的预期。这款专业blyisnttheeffectthatyoudesireinanygame,soifthiseverhappensyoullproba要提醒用户,她的机器是有一个困难时期保持游戏与钇。戒指animat调整动画的速度高速三同时调整帧率游戏本身确实影响,这不是理想的方式这样做。这是为什么?当您更改项目的帧,它会影响所有图像动画速度,以及事物的物体运动速度等。如果你想要的动画形象之一,另一个是在60时30 fps的动画,你将无法完成,通过形容词安泰整个游戏的帧率小仙。36 |第二章有:趣味删除行类添加您在上一节那套theGame1的TargetElapsedTime成员,让我们尝试了不同的路线。Whenadjustingaspritesanimationspeed,youtypicallywanttodosoforthatsprite孤独。这可以通过过去的方式来建立一个表指定的时间只有当移动到下一帧中的精灵。要做到这一点,添加两个类级可变埃布尔斯,您将使用跟踪帧之间的时间动画:诠释timeSinceLastFrame = 0;诠释millisecondsPerFrame = 50;的timeSinceLastFrame变量将被用于跟踪多少时间已经过去了动画帧被改变。该millisecondsPerFrame变量用来指定多少时间,你要等待移动当前帧的索引。帧的动画循环的方法实际发生在你的更新。因此,下一步就是检查动画帧之间的时间过去了,运行的代码将当前帧只有在需要的运行时间已经达到。修改代码的方法已经添加到周围的更新,以包括如性发言所示(更改大胆的是):timeSinceLastFrame + = gameTime.ElapsedGameTime.Milliseconds;如果(timeSinceLastFrame millisecondsPerFrame){timeSinceLastFrame -= millisecondsPerFrame; + + currentFrame.X;如果(currentFrame.X = sheetSize.X){currentFrame.X = 0; + + currentFrame.Y;若(currentFrame.Y = sheetSize.Y)currentFrame.Y = 0;}}当你看到这里,您可以使用gameTime.ElapsedGameTime属性来确定多少时间有变化过去了一帧。此属性指示多少时间
文档评论(0)