电玩巴士 > PSV > 软件教程 > 正文

PS Suite SDK官方开发帮助文档完整中文翻译

发布时间:2012/5/29 16:33:44 来源:电玩巴士 作者:天楼神威

论坛PSS专区

  编程向导之二:显示图像

  本节说明了如何在屏幕上显示图像。

  显示图像的步骤

  只是让屏幕逐渐变白一点意思都没有,所以让我们试着让它显示些东西出来看看吧。这一次,打开文件夹Tutorial/Sample02_01/中的解决方案。

  以下步骤说明了如何显示图像。

  添加图像文件

  向项目中添加你想要显示的图像文件。
  1、在PS Suite Studio解决方案浏览器中,选择resources文件夹,右键点击->Add->Add File,并选择想要显示的图像文件。
  2、添加文件之后,右键点击->Properties->Build Action然后选择“Contents”(PNG文件会默认选择为Contents)。图片文件支持PNG/BMP/JPEG/GIF等格式,由于PNG格式支持透明度,所以如果想用透明颜色的时候,最好使用PNG格式。该文件夹不需要一定是"resources"文件夹,你可以将文件添加到其他你想要的位置。

  添加着色器程序

  向项目中添加着色器程序。

  ·在这里,向项目中添加顶点着色器Sprite.vcg和片段着色器Sprite.fcg。

  ·添加文件之后,右键点击->Properties->Build Action然后选择“ShaderProgram”,将生成动作设置成着色器程序之后,生成时将会把Sprite.vcg和Sprite.fcg这两个文件生成一个二进制格式的Sprite.cgx文件。

  创建纹理和初始化着色器程序

  当图像文件和着色器程序添加到项目中后,请将程序按照以下形式进行初始化。
  Sample02_01/AppMain.cs

  Texture2D
  texture = new Texture2D("/Application/resources/Player.png", false);创建了纹理。所谓“创建纹理”,就是在显存中创建图像。

  ShaderProgram
  在程序中读取着色器程序的时候,指定已生成的Sprite.cgx文件。

  shaderProgram = new ShaderProgram("/Application/shaders/sprite.cgx");运行时将编译参数指定的着色器程序。而后即可使用来自shaderProgram的方法进行处理。

  创建顶点缓冲

  接下来将要设置的是渲染纹理所需要的顶点缓冲。下面将向大家介绍怎样绘制两个三角形,并使他们组成一个四边形。

  请看下面一段源代码。为了保存四个顶点的“顶点坐标、纹理坐标、顶点颜色、顶点索引”信息,要满足以下条件:
  ·顶点坐标需要x,y,z三个元素,float数组中要保证有12个位置(用z来指定深度)。
  ·纹理坐标需要u,v两个元素,float数组中要保证有8个位置。
  ·顶点颜色需要r,g,b,a四个元素,float数组中要保证有16个位置。
  ·顶点索引需要确保4个位置(顶点索引用来指定顶点的渲染顺序)。
  AppMain.cs

  在初始化函数Initialize()中读取图像之后,设置顶点坐标。
  AppMain.cs

  设置顶点缓冲

  接下来要设置顶点缓冲。指定VertexBuffer()函数的第一个参数为顶点个数4。

  使用vertexBuffer.SetVertices()函数将顶点数据复制到顶点缓冲中。使用graphics.SetVertexBuffer()函数指定渲染时的顶点缓冲。

  变换坐标系

  接下来,设置用来将像素单位坐标系转换为默认屏幕坐标系的矩阵。

  ImageRect rectScreen = graphics.Screen.Rectangle;是用来获取屏幕大小的。2D游戏坐标系通常是以左上角为原点的,Y轴正方向指向屏幕下方。显示分辨率是以像素为单位的。与此相对,在默认屏幕坐标系中是以屏幕中心为原点,屏幕右侧是1.0,左侧则为-1.0,上为1.0,下为-1.0。

  2D游戏坐标系(左图)和屏幕坐标系(右图)

  因此,2D游戏坐标系(以下简称为像素坐标系)中指定的多边形想要在屏幕中显示的话,就必须将顶点转换为屏幕坐标系。Matrix4()中设置的值,就是用来执行转换的。

  执行渲染多边形

  指定各要素之后,即可执行渲染命令。

  DrawArrays()是用来执行渲染的函数。执行后,屏幕将显示如下画面。

  定义简化版的子画面类

  推荐大家通过本节中的代码来创建一个可以复用的图片显示类。类定义保存在TutoLib/SimpleSprite.cs文件中。
  ※SimpleSprite类是专门针对编程指引而制成的简易版,不是最适合处理渲染的类。高速渲染的场合请使用Sce.Pss.HighLevel.GameEngine2D。

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  ... 下一页  >> 

提示:支持键盘“← →”键翻页 阅读全文

相关推荐

评论