【2017年整理】8图形特效与文字显示.docVIP

  • 2
  • 0
  • 约3.32万字
  • 约 20页
  • 2017-02-05 发布于浙江
  • 举报
【2017年整理】8图形特效与文字显示

摘要 使用 XNA Framework 设计游戏程序的时候可以利用 SpriteBatch 类别提供的功能显示游戏的内容供用户检视,SpriteBatch 类别提供了丰富的功能协助游戏程序绘制图画和文字,包括对所输出的图画和文字加入特殊的效果,例如放大/缩小、旋转、设定透明度、水平/垂直翻转、以及图层深度等游戏程序常常需要表现的效果。在这一篇文件中,我们将会为大家介绍利用 SpriteBatch 类别为游戏程序加上特殊效果的多种做法。 认识 SpriteBatch 类别 XNA Framework 支持的 SpriteBatch 类别可以协助游戏程序输出 2 维的图片和文字,并提供批次输出的功能,避免频繁地输出游戏的内容造成闪烁的现象。 [提示] 虽然以 XNA 为基础的 3D 游戏输出 3 维的图形内容时不需要依靠 SpriteBatch 类别提供的功能,但是当 3D 游戏需要提供文字的功能选单供用户选择的时候,还是需要使用到 SpriteBatch 类别提供的文字输出功能。 表 1 所示为 SpriteBatch 类别常用的属性 表 1 :SpriteBatch 类别常用的属性 属性名称 说明 GraphicsDevice 取得游戏程序所使用的 GraphicsDevic 类别的对象的属性。 表 2 所示为 SpriteBatch 类别常用的方法: 表 2 :SpriteBatch 类别常用的方法 方法名称 说明 Begin 宣告批次绘图的动作开始。 Draw 绘制 2 维图案。 DrawString 绘制文字。 End 宣告批次绘图的动作结束,将从呼叫 Begin 方法之后绘制的所有内容输出到游戏窗口,并将 GraphicsDevice 的状态还原到呼叫 Begin 方法之前的状态。 SpriteBatch 类别的功能看似简单,但是负责绘制 2 维图案的 Draw 方法有高达7个不同的多载 (Overload) 版本,负责绘制文字的 DrawString 方法也有多达 6 个不同的多载版本,让游戏程序可以经由传入不同数量的参数,控制方法执行的结果,如果再加计列举型态的参数的内容值选择,就可以组合出各种繁复的变化,满足游戏程序就变更游戏程序内容的需求。 SpriteBatch 类别与图形特效支持 SpriteBatch 类别支持绘制 2 维图案的 Draw 方法一共有以下 7 个不同的多载版本: SpriteBatch.Draw(texture, destinationRectangle, color) SpriteBatch.Draw(texture, destinationRectangle, sourceRectangle, color) SpriteBatch.Draw(texture, destinationRectangle, sourceRectangle, color, rotation, origin, effects, layerDepth) SpriteBatch.Draw(texture, position, color) SpriteBatch.Draw(texture, position, sourceRectangle, color) SpriteBatch.Draw(texture, position, sourceRectangle, color, rotation, origin, scale, effects, layerDepth) SpriteBatch.Draw(texture, position, sourceRectangle, color, rotation, origin, scale, effects, layerDepth) 其需要用到的参数请参考表3的详细说明: 表 3 :SpriteBatch 类别的 Draw 方法需要使用的参数 参数名称 说明 texture 型态为 Texture2D 类别的参数,负责管理欲绘制的 2 维图案。 destinationRectangle 负责描述欲绘制在游戏窗口上的物体的矩形。 color 负责控制欲绘制的图形的色调的参数,传入 Color.White 表示不改变欲显示的物体的色调。 sourceRectangle 指定欲用来取用来源对象的矩形。 scale 图案放大/缩小的倍数。 rotation 旋转角度。 origin 旋转图形时所依据的圆心。 effects 设定成 SpriteEffects.FlipHorizontally 表示要水平翻转图案,设定成 SpriteEffects.FlipVertically 表示要垂直翻转图案。 layerDepth 图层深度。0 代表前景层,1 代表背景层,可以搭配呼叫 S

文档评论(0)

1亿VIP精品文档

相关文档