星期三, 五月 23, 2007

XNA GSE入门(三) 2d图像基本特效

XNA GSE入门(一) 显示图片一文中只是简单的把图片显示出来了,现在,我们在那个程序的基础上添加一些新的功能1. 添加透明效果
你需要先准备一张带alpha通道的图片,jpg是不支持透明色的,png图片可以支持,也比较小。(这里是我用的实验图片)
将编辑好的图片保存,并修改Construct函数里面载入图片的地方
ObjectTexture = Texture2D.FromFile(graphics.GraphicsDevice, “logo_head_transparency.png”);在draw函数里面做如下修改,设置绘制模式为alphablend
ObjectBatch.Begin(SpriteBlendMode.AlphaBlend); Vector2 pos = new Vector2(0, 0); ObjectBatch.Draw(ObjectTexture, pos, Color.White); ObjectBatch.End();这样图片中透明的部分将不会画出来了。

2. 半透明效果
在原先的绘制中,SpriteBatch的Draw函数第三个参数一直是设置成Color.White,就是让所有的颜色都绘制出来。其实Color出来包括RGB,还有一个A,就是Alpha值。如果我们设置Color的Alpha为0~1之间,就可以半透明的绘制图片了。
创建一个Color:
Color color = new Color(new Vector4(1.0f,1.0f,1.0f,0.5f));Color构造函数里面的向量的第4个参数就是Alpha值了,这里我们设成0.5,就是50%的透明,你也可以设置成其他的值。将绘制函数的第3个参数设置成我们的color
ObjectBatch.Draw(ObjectTexture, pos, color);就是半透明效果了



3. 反转图片颜色效果
ObjectBatch.Begin(SpriteBlendMode.InverseColor);这个就可以反转图片颜色了



这些是2d游戏里面常用的一些效果,SpriteBlendMode结构还有一个参数是Additive,也是一种特效,但是我怎么也试不出来如何使用,如果你知道请告诉我ledwinka@gmail.com


没有评论: