如何解决单声道游戏中的全屏分辨率问题
几天前,我开始使用 Visual Studio 2017 在 MonoGame 中开发游戏,并将我在 WinForms 中编写的代码移植到 MonoGame。现在我对全屏模式有问题。我搜索了互联网,唯一发现的是它取决于显示器的分辨率。
在应用程序的默认窗口模式下,屏幕如下所示:
现在当我切换到全屏模式时 - 会发生这种情况:
现在我的问题是:
- 在图片上看不到它,因为我使用了打印按钮并粘贴到其中进行绘画,但图像大部分被拉伸了。
- 屏幕右侧部分被切断
- 精灵被移到顶部。
我正在使用
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 举报,一经查实,本站将立刻删除。