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会进行跳帧尽力达到您期望的速率