XNA 整个屏幕及触控进行缩放

来源:互联网 发布:ios11pp助手更新软件 编辑:程序博客网 时间:2024/06/11 19:59

前一阵忙着做WP的游戏,可是用WP的小伙伴实在是屈指可数,为了方便大家进行游戏,于是改成了Windows Game。结果分辨率的问题杀死了自己不少脑细胞。比较搞笑的是,MSDN上面http://msdn.microsoft.com/en-us/library/bb447674.aspx的解决方案卖了个萌,方法描述木有问题,但是代码写错了...

下面是我的具体做法:

先简单说下,屏幕缩放无非改变两个变量:

1.屏幕绘制的大小。

2.触控检测的位置。

对于1,实际上我们熟悉的SpriteBatch.Begin()有不少的参数设定,我们只需为其指定一个合适的缩放比例矩阵即可。

代码如下:

public const float SCREENSCALE = 0.8f;...SpriteScale = Matrix.CreateScale(SCREENSCALE, SCREENSCALE, 1);...SAGlobal.spriteBatch.Begin(SpriteSortMode.Deferred,BlendState.AlphaBlend, SamplerState.LinearClamp, DepthStencilState.None, RasterizerState.CullCounterClockwise,null, SpriteScale);...

对于2,太简单了,假设放大系数为Scale,那么鼠标位置为position*(1/Scale)就OK了!

0 0
原创粉丝点击