我想为Windows Phone创建一款游戏。为了简化开发过程,如果我可以使用XAML创建UI而不是创建自己的UI框架,那就太棒了。但游戏应该看起来不像应用程序。我更喜欢它有点像素艺术。所以我不得不制作xaml页面。 G。宽度为200像素,无需插值即可进行缩放。我也很擅长禁用抗眩光。
那是(至少部分)可能吗?
请不要说“你不应该这样做,因为它看起来很难看”。对于应用来说,它看起来很丑陋,但游戏应该是不同的。
答案 0 :(得分:0)
您可以使用WriteableBitmap
从头开始创建位图,这将简化该部分。
至于扩展,您始终可以使用RenderTransform
缩放XAML元素。
答案 1 :(得分:0)
不是将UIRenderer的纹理绘制到GameTimer.Draw
事件处理程序的屏幕上,而是将其渲染为另一个较小的纹理,然后使用最近的过滤(下面未经测试的代码)将较小的纹理渲染到屏幕:
SamplerState ss = new SamplerState();
ss.Filter = TextureFilter.Point;
ss.AddressU = TextureAddressMode.Clamp;
ss.AddressV = TextureAddressMode.Clamp;
ss.AddressW = TextureAddressMode.Clamp;
Matrix transformMatrix = Matrix.CreateScale( new Vector3( scaleX, scaleY, 1 ) );
spriteBatch.Begin( SpriteSortMode.Deferred, null, ss, null, null, null, transformMatrix );
spriteBatch.Draw( smallerTexture, Vector2.Zero, Color.White );
spriteBatch.End();
这里,较小的纹理是您渲染UIElementRenderer纹理的较小纹理。 资源开销的主要缺点 - 您首先生成屏幕大小的纹理。我不知道它是否是一个showstopper,你应该在低端硬件设备上进行测试。
另一种方法是在UIElementRenderer的构造函数中传递较小的纹理大小,然后渲染这个较小的纹理,如上面的代码所示。但是,这种方法打破了触摸输入坐标,我不知道如何修复。