设为首页收藏本站

电玩巴士游戏论坛

 找回密码
 注册
查看: 8831|回复: 15

[资料] 【PSS SDK官方教程文档翻译】(4)编程向导之一:显示图像

[复制链接]

27

帖子

10万

猥币

1

巴士票

猥服出巡 Lv.4

Rank: 3Rank: 3Rank: 3

积分
773

发表于 2012-4-29 15:41 | 显示全部楼层 |阅读模式
本帖最后由 狼牙Kebar 于 2012-5-21 14:40 编辑

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

显示图像的步骤
只是让屏幕逐渐变白一点意思都没有,所以让我们试着让它显示些东西出来看看吧。这一次,打开文件夹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"文件夹,你可以将文件添加到其他你想要的位置。
1.jpg

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

创建纹理和初始化着色器程序
当图像文件和着色器程序添加到项目中后,请将程序按照以下形式进行初始化。
Sample02_01/AppMain.cs
0.jpg
Texture2D
texture = new Texture2D("/Application/resources/Player.png", false);创建了纹理。所谓“创建纹理”,就是在显存中创建图像。
ShaderProgram
在程序中读取着色器程序的时候,指定已生成的Sprite.cgx文件。
shaderProgram = new ShaderProgram("/Application/shaders/sprite.cgx");运行时将编译参数指定的着色器程序。而后即可使用来自shaderProgram的方法进行处理。

创建顶点缓冲
接下来将要设置的是渲染纹理所需要的顶点缓冲。下面将向大家介绍怎样绘制两个三角形,并使他们组成一个四边形。
3.png
请看下面一段源代码。
为了保存四个顶点的“顶点坐标、纹理坐标、顶点颜色、顶点索引”信息,要满足以下条件:
·顶点坐标需要x,y,z三个元素,float数组中要保证有12个位置(用z来指定深度)。
·纹理坐标需要u,v两个元素,float数组中要保证有8个位置。
·顶点颜色需要r,g,b,a四个元素,float数组中要保证有16个位置。
·顶点索引需要确保4个位置(顶点索引用来指定顶点的渲染顺序)。
AppMain.cs
4.jpg
在初始化函数Initialize()中读取图像之后,设置顶点坐标。
AppMain.cs
5.jpg

设置顶点缓冲
接下来要设置顶点缓冲。指定VertexBuffer()函数的第一个参数为顶点个数4。
6.jpg
使用vertexBuffer.SetVertices()函数将顶点数据复制到顶点缓冲中。
使用graphics.SetVertexBuffer()函数指定渲染时的顶点缓冲。

变换坐标系
接下来,设置用来将像素单位坐标系转换为默认屏幕坐标系的矩阵。
7.jpg
ImageRect rectScreen = graphics.Screen.Rectangle;是用来获取屏幕大小的。
2D游戏坐标系通常是以左上角为原点的,Y轴正方向指向屏幕下方。显示分辨率是以像素为单位的。
与此相对,在默认屏幕坐标系中是以屏幕中心为原点,屏幕右侧是1.0,左侧则为-1.0,上为1.0,下为-1.0。
8.jpg
2D游戏坐标系(左图)和屏幕坐标系(右图)
因此,2D游戏坐标系(以下简称为像素坐标系)中指定的多边形想要在屏幕中显示的话,就必须将顶点转换为屏幕坐标系。
Matrix4()中设置的值,就是用来执行转换的。

执行渲染多边形
指定各要素之后,即可执行渲染命令。
9.jpg
DrawArrays()是用来执行渲染的函数。
执行后,屏幕将显示如下画面。
a.png

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




【PSS SDK官方教程文档翻译】(1)关于PSS SDK和设置开发环境:http://bbs.tgbus.com/thread-3534821-1-1.html
【PSS SDK官方教程文档翻译】(2)在设备上运行设置创建项目:http://bbs.tgbus.com/thread-3537813-1-1.html
【PSS SDK官方教程文档翻译】(3)编程向导之一:程序框架:http://bbs.tgbus.com/thread-3547070-1-1.html
【PSS SDK官方教程文档翻译】(4)编程向导之二:显示图像:http://bbs.tgbus.com/thread-3548072-1-1.html
【PSS SDK官方教程文档翻译】(5)编程向导之三:用户输入:http://bbs.tgbus.com/thread-3560812-1-1.html
【PSS SDK官方教程文档翻译】(6)编程向导之四:面向对象(上):http://bbs.tgbus.com/thread-3564375-1-1.html
【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象(下):http://bbs.tgbus.com/thread-3584518-1-1.html
【PSS SDK官方教程文档翻译】(8)编程向导之五:PSS Stuido集成开发环境的基本用法:http://bbs.tgbus.com/thread-3584539-1-1.html
【PSS SDK官方教程文档翻译】(9)编程向导之六:输出声音:http://bbs.tgbus.com/thread-3585516-1-1.html
【PSS SDK官方教程文档翻译】(10)编程向导之七:释放实例和垃圾回收器
【PSS SDK官方教程文档翻译】(11)编程向导之八:完成游戏:
持续更新中,敬请期待。

评分

参与人数 3浮云 +11 猥币 +300 收起 理由
nano4233 + 1 快开门,我是来送自动编程软件的!.
dada19961018 + 5 敌羞吾去脱它衣!
砂糖 + 5 + 300 敌羞吾去脱它衣!

查看全部评分

674

帖子

222万

猥币

1

巴士票

积分
446939

幸福の四叶草【稀有成就】运营团队【光辉事迹】

QQ

发表于 2012-4-29 15:55 | 显示全部楼层
大过节的辛苦了……{:20:}

评分

参与人数 1浮云 +4 收起 理由
dada19961018 + 4

查看全部评分

回复

使用道具 举报

120

帖子

10万

猥币

1

巴士票

猥乎其微 Lv.3

Rank: 2Rank: 2

积分
308
QQ

发表于 2012-4-29 15:59 | 显示全部楼层
不懂也要支持
回复

使用道具 举报

213

帖子

10万

猥币

1

巴士票

猥风八面 Lv.8

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

积分
20981

发表于 2012-4-29 18:22 | 显示全部楼层
学习了,感谢
回复

使用道具 举报

3283

帖子

67万

猥币

0

巴士票

猥我独尊 Lv.10

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

积分
135814

水元素【普通成就】

发表于 2012-4-29 18:24 | 显示全部楼层
虽然不懂,支持了
SEN港服ID:JingJingDeChang
[
































印度快递印度物流印度清关印度亚马逊出口印度[url=http://www.chukouyindu.com/]印度货运[/u
回复

使用道具 举报

1590

帖子

10万

猥币

2

巴士票

积分
23997

常客【普通成就】水元素【普通成就】小千金的癖好【普通成就】帖!帖!帖!【稀有成就】

发表于 2012-4-29 18:25 | 显示全部楼层
目测楼主技术很厉害。
回复

使用道具 举报

44

帖子

10万

猥币

1

巴士票

猥不足道 Lv.2

Rank: 1

积分
125

发表于 2012-4-29 19:17 | 显示全部楼层
灰常感谢大神的汉化啊~~更新必看~
回复

使用道具 举报

52

帖子

10万

猥币

1

巴士票

猥不足道 Lv.2

Rank: 1

积分
43
QQ

发表于 2012-4-30 14:31 | 显示全部楼层
<(=﹁"﹁=)>顶
回复

使用道具 举报

1337

帖子

12万

猥币

1

巴士票

猥风八面 Lv.8

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

积分
25670

水元素【普通成就】

QQ

发表于 2012-4-30 16:51 | 显示全部楼层
顶起来
回复

使用道具 举报

599

帖子

20万

猥币

1

巴士票

猥震海内 Lv.9

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

积分
41290

发表于 2012-4-30 17:06 | 显示全部楼层
希望早日出现完全版,到时候我也来试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|电玩巴士游戏论坛 ( 渝ICP备14007792号-12 )  

GMT+8, 2018-1-18 15:52 , Processed in 0.239772 second(s), 15 queries , MemCache On.

Powered by Discuz!

 

快速回复 返回顶部 返回列表