Welcome

首页 / 软件开发 / .NET编程技术 / XNA入门教程(三) 简单的动画

XNA入门教程(三) 简单的动画2010-12-02 博客园 Edwin Tai继续我们的XNA之旅...

上周,我们简单的介绍了XNA的相关控制器,并且实现了鼠标和键盘对屏幕内的 某个Sprite(精灵)进行简单的位置控制.

但是,美中不足的,我们并没有实现Sprite人物的移动动作,即Animation.

现在,我们继续上周所讲的, 实现简单的动画.

关于Animation

对动画有所了解的朋友对于逐帧动画一定不会陌生.其以最简单的形式,将各 动画元件相邻单位时间的动作位置记录在每个帧里.这样,当我们

一帧帧播放时,由于视觉暂留现象,我们便能看到相对"运动"的动画了.我们通 常看到的GIF动画,就是基于这个原理的.

回来说们的游戏,由于在一般游戏内Sprite的"动作"都是有限可枚举得,我们 便同样可以用类似的方案来记录Sprite的所有动作.

我们现在尝试用上面的GIF来实现我们的移动动画.

由于原生的XNA不支持直接从GIF动画中读取各帧图象,即不能直接从Content 中Load到GIf动画或其相关帧图像

虽然从技术上而言,由于有很多开源项目支持如何读取或生成GIF(有兴趣的 朋友可以看看这里),我们完全可以通过之自己加载Gif动画的某帧来实现游戏 动画。

但这里,我们老老实实的将各帧拆开,得到以下的图像。

这样,我们只要通过加载不同的同一图像的不同位置,便可实现人物的”运 动“了 。

加载动画

我们回到这个系列的第一篇

在sprite的Draw时候,我们提供以下重载参数

其中我们就可以通过设置sourceRectangle的值来显示texture2D的一部分了 。