摘要:
我们知道在Windows Phone 7中XNA游戏默认的帧频是30fps(PC和xbox360中是60fps),可是实际游戏开发过程中这个值未必都能满足我们的需求。下面我们就一块看一下在XNA游戏开发过程中如何调整游戏的速度。
内容:
在Game类中有一个属性TargetElapsedTime,用来表示每一帧之间的时间间隔,例如默认为1/30秒,也就是帧频为30fps。如果仔细看一下你会发现在VS自动生成的Game1类的构造函数中给TargetElapsedTime属性赋值为TimeSpan
.FromTicks(333333)
,也就是时间间隔为
0.0333…
秒,帧频
30fps
。既然如此我们就可以修改这个值达到我们想要的结果,例如我们修改为
333333*2
就可以将速度放慢一倍(当然也可以不使用刻度为单位,例如使用
TimeSpan
.FromSeconds(1/15)
)。
这种方法看似可行,但是多数情况下我们没有办法这么做,因为如果修改了
TargetElapsedTime属性就表示整个游戏的帧频都进行了修改。通常游戏中不可能都是某种固定帧频,一般都是游戏中有些元素运动得快,有些元素运动的慢,因此很难用某种统一的速度来设置。这个时候我们怎么办呢?
我们知道游戏的动画速度取决于Update中动态变量变化的程度,如果我们可以控制变量的变化速度就可以修改游戏的速度。此时我们注意到Update方法有一个GameTime类型的参数,它有一个属性ElapsedGameTime
,表示从上一帧到这一帧的时间间隔。有了它我们只需要设置一个变量用来记录时间间隔,只有间隔到达我们需要的值时才在Update中修改动态变量,这样的话就可以变形的修改动画速度了。例如下面一个通过动态更改图片来形成动画效果Demo(图片在对应的Content中,分别为1.png、2.png、3.png、4.png、5.png),原来的代码如下:
经过修改后:
下面我们对比一下这个动画的修改前后的效果:
OK,今天就到这里吧!
本作品采用知识共享署名 2.5 中国大陆许可协议进行许可,欢迎转载,演绎或用于商业目的。但转载请注明来自崔江涛(KenshinCui),并包含相关链接。
分享到:
相关推荐
Microsoft 的 XNA 游戏开发 资料。
Direct 3D与XNA游戏开发光盘资源(6卷).part3
Direct 3D与XNA游戏开发源码,很优秀的书,很优秀的源代码。
XNA游戏开发SDK安装包,安装后在Visual Studio中可以做XNA游戏项目
Direct.3D和XNA游戏开发基础(C#语言版)
XNA平台游戏开发中文教程,对于入门来说是不可多得的靓文.
介绍了Direct_3D的基础知识与XNA游戏开发基础
XNA 游戏开发 C# 安装包
本系统共享全部源代码,对XNA游戏开发有兴趣的读者或是专业人士均有一定的参考价值。
xna游戏的开发介绍以及编程代码 是学习xna开发的必读之书
该游戏是基于xna4.0开发的小游戏,属于简单的AI游戏, 含源代码。
基于XNA开发的3D游戏源码,适合初学者!
XNA游戏开发网页文章精选pdf,这是我在网上查找到的关于C#开发XNA游戏的相关资料文章,做成pdf格式了~需要的可以下载来看,省了很多时间来做无用功~
使用xna游戏开发 windows phone7上的游戏
关于Direct 3D与XNA游戏开发的例子,包含全部的源码! 总共有16章,由于大小的限制,只能一章一章的传!
基于XNA框架开发的连连看小游戏,使用C#语言