XNA初试——2D精灵

来源:互联网 发布:jquery json remove 编辑:程序博客网 时间:2024/04/26 06:03

打开XNA我们可以像创建一个普通的vs的项目一样创建一个游戏,在创建一个windowsgames的模板以后,我们可以看到有game.cs和programe.cs两个文件,运行模式和普通的windows application很相近,都是创建一个运行的实例然后调用该实例的run方法;

一个xna工程在创建之初就提供了如下的函数供调用:

用于启动和运行游戏的代码已经为你写好了,里面都留有让你加入代码的地方:

  • Initialize 方法是你对那些不需要在初始化GraphicsDevice时就加载的资源做初始化的地方.
  • LoadContent 方法是你加载图象资源(诸如模型和纹理等)的地方.
  • UnloadContent 方法是释放图象资源的地方,通常,这里不需要写额外的代码,因为当图象资源不再需要的时候会被自动释放.
  • Update 循环是你对游戏逻辑进行更新的最佳场所:移动对象,接收玩家输入,决定对象之间碰撞的结果,等等...
  • Draw 循环是你渲染对象和屏幕背景的一个最佳的场所. lSnap1

ok,下一步就是加入一个简单的2d精灵:

首先需要定义一个Texture2D对象,用来读取2d精灵的纹理,然后需要定义一个SpriteBatch对象,在LoadContent中加载纹理,实例化SpriteBatch的过程中需要将GraphicsDevice作为参数传递给它的构造函数,我们想,这里是不是就是告诉了系统使用当前的物理图像设备?lSnap2

vSnap2确保你在调用ContentManager.Load 的时候使用了上一步中提到的"Asset Name"(资源名称). 这段代码将加载并准备好你绘图所需的图象资源,并且当图象设备被复位的时候重新加载图象资源 (例如在窗口大小被改变的时候).

好的现在我们已经加载了该资源,通过在Draw循环中加入代码我们将之显示出来vSnap1  这样一个不会动的精灵已经被加载在了系统并显示在屏幕上;那么怎么让他动起来呢?

修改Update()方法vSnap3

在下面定定义UpdateSprite()方法,对精灵进行更新:vSnap4

 

 

 

 

 

 

 

 

vSnap5

 

 

 

 

 

 

 

这样,精灵将在屏幕四周运动并做碰撞的时候会立即返回;