微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单声道游戏中的全屏分辨率问题

如何解决单声道游戏中的全屏分辨率问题

几天前,我开始使用 Visual Studio 2017 在 MonoGame 中开发游戏,并将我在 WinForms 中编写的代码移植到 MonoGame。现在我对全屏模式有问题。我搜索了互联网,唯一发现的是它取决于显示器的分辨率。

在应用程序的认窗口模式下,屏幕如下所示:

enter image description here

现在当我切换到全屏模式时 - 会发生这种情况:

enter image description here

现在我的问题是:

  1. 图片上看不到它,因为我使用了打印按钮并粘贴到其中进行绘画,但图像大部分被拉伸了。
  2. 屏幕右侧部分被切断
  3. 精灵被移到顶部。

我正在使用 graphics.ToggleFullScreen();

有没有办法像在窗口模式下一样保持原始状态?也许为 4:3 模式放置柔性条并保持精灵位置?我的职位是固定的。所以使用类似的东西 spriteBatch.Draw(Params.CUR_SPRITE_P1,new Rectangle(Convert.ToInt32(POSITION_P1.X),Convert.ToInt32(POSITION_P1.Y),750,476),Color.White); 用于播放器位置和屏幕(实现滚动)。

或者在全屏模式下调整所有内容,但保持精灵在不同屏幕分辨率下的位置...

非常感谢!

解决方法

好吧,经过搜索和搜索,我终于找到了答案:

var scaleX = (float)ActualWidth / VirtualWidth;
var scaleY = (float)ActualHeight / VirtualHeight;
var matrix = Matrix.CreateScale(scaleX,scaleY,1.0f);

spriteBatch.Begin(transformMatrix: matrix);

这必须放在 Draw()-Method 中。 我的虚拟屏幕尺寸是 800x480。我用我的显示器尺寸 1920x1080 对其进行了测试,结果成功了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。