XNA开发中的关键函数总结

此为原创,转载请注明作者和出处,谢谢!

首先在draw这个循环中:

 1spriteBatch.Draw(textureTransparent,
 2                         new Vector2(Window.ClientBounds.Width / 2,
 3                             Window.ClientBounds.Height / 2),
 4                             null,
 5                             Color.White,
 6                             0,
 7                               Vector2.Zero,
 8                             1.5f,
 9                             SpriteEffects.FlipHorizontally,
10                       0);

以下是对个参数的解释

 

Texture        Texture2D     要绘制的纹理。

Position        Vector2      绘制图像的左上角坐标。

SourceRectangle    Rectangle     允许您绘制原始图像的一部分,这里使用null。

Color         Color         染色颜色。

Rotation        float      旋转图像,现在使用0。

Origin         Vector2      指定旋转的参照点。现在使用Vector2.Zero。

Scale         float       缩放比例,使用1代表按照原始尺寸绘制,1.5f表示放大图  像到150%。

Effects        SpriteEffects   使用SpriteEffects枚举来垂直或水平翻转图像。

LayerDepth        float       允许您指定图像的层叠次序(哪张图像在其他图像之上。现  在使用0.

关于绘制图片的spriteBatch有这样的解释

SpriteBatch.Begin重载方法参数列表
SpriteBlendMode    决定精灵颜色怎样和背景色混合,有三个模式:

           •None:不进行颜色混合。

           •AlphaBlend:使用alpha值进行混合。这是默认模式,并开启透明效果,像之前提到的,如果您有带透明背景的图像,就应该使用                                    AlphaBlend。

           •Additive:将精灵颜色和背景颜色进行混合。

SpriteSortMode     定义渲染精灵的排序模式,有五个模式:

                 •Deferred:精灵不会被绘制直到SpriteBatch.End被调用。然后End以它们被调用的次序送到图形设备中。在这个模式下,

                                   操作多个SpriteBatch对象时可以让Draw调用不会产生冲突。这是默认模式。


           •Immediate:Begin调用会立即设置图形设备,Draw调用会立即进行绘 制。同一时间只能有一个SpriteBatch对象被使用。

                                              这是最快的模式。  


           •Texture: 和Deferred模式一样,但是精灵在绘制之前按照纹理进行排 序。

                   •BackToFront:和Deferred模式一样,不过精灵按照层深度参数从前往后 排序。

                   •FrontToBack:和Deferred模式一样,不过精灵按照层深度从后往前排序。

SaveStateMode   定义保存图形设备状态的模式,有两个模式:

                •None:不保存设备状态。

                 •SaveState:图像设备状态的状态在Begin调用后被保存,在End调用后 被恢复。

 


XNA的Game类有一个叫做TargetElapsedTime的属性用来告诉XNA在每次Game.Update调用之间要等待多久。本质上这个属性表示每个帧之间的时间间隔。默认情况下这个值被设为1/60秒,也就是帧速度为60fps。

Update和Draw方法都有的GameTime对象参数,有一个叫做IsRunningSlow的布尔类型的属性。您能在任何时候在这两个方法中检查IsRunningSlow的值。如果值为true,XNA不能跟上您指定的帧速率。在这种情况下,XNA会进行跳帧尽力达到您期望的速率


 

 

 

 

 

 

 

posted on 2009-06-14 17:15  一盘散沙  阅读(606)  评论(8编辑  收藏  举报

导航