加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

使用XNA SpriteBatch进行倾斜效果

发布时间:2020-12-14 03:53:38 所属栏目:Windows 来源:网络整理
导读:Windows Phone对按钮有很好的倾斜效果,如下图所示: 是否可以使用SpriteBatch在XNA中重新实现此行为?我可以检测触摸位置并计算矩形角应该是的点,但我不知道如何使用这种失真渲染图像. 解决方法 Matrix projection = Matrix.CreateOrthographicOffCenter(0,v
Windows Phone对按钮有很好的倾斜效果,如下图所示:

是否可以使用SpriteBatch在XNA中重新实现此行为?我可以检测触摸位置并计算矩形角应该是的点,但我不知道如何使用这种失真渲染图像.

解决方法

Matrix projection = Matrix.CreateOrthographicOffCenter(0,viewport.Width,viewport.Height,1);
Matrix halfPixelOffset = Matrix.CreateTranslation(-0.5f,-0.5f,0);

basicEffect.World = Matrix.Identity;
basicEffect.View = Matrix.Identity;
basicEffect.Projection = halfPixelOffset * projection;

basicEffect.TextureEnabled = true;
basicEffect.VertexColorEnabled = true;

spriteBatch.Begin(0,null,basicEffect);

您可以将BasicEffect传递给SpriteBatch.Begin方法.这允许您使用带有spritebatch的自定义着色器,更有趣的是在您的情况下允许您控制相机并转换支持SpriteBatch的四边形.以上是默认值,并且应该像标准的SpriteBatch一样,你不能专门改变点,但旋转应该达到你想要的效果.

要更改四边形的3D位置,只需更改basicEffect.World矩阵即可.

例:

basicEffect.View = Matrix.Identity * Matrix.CreateRotationY(.002);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读