Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单声道游戏中的全屏分辨率问题_C#_Visual Studio_Fullscreen_Resolution_Monogame - Fatal编程技术网

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

C# 单声道游戏中的全屏分辨率问题,c#,visual-studio,fullscreen,resolution,monogame,C#,Visual Studio,Fullscreen,Resolution,Monogame,几天前,我开始使用Visual Studio 2017在MonoGame中开发游戏,并将我用WinForms编写的代码移植到MonoGame。现在我有一个全屏模式的问题。我在网上搜索了一下,唯一发现的是,这取决于显示器的分辨率 在应用程序的默认窗口模式下,屏幕如下所示: 现在,当我切换到全屏模式时,会发生以下情况: 现在我的问题是: 人们在图片上看不到它,因为我使用了打印按钮并粘贴到了画图中,但图像在很大程度上是分散的 屏幕的右侧部分被切断 精灵将移动到顶部 我正在使用 graphics.T

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

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

现在,当我切换到全屏模式时,会发生以下情况:

现在我的问题是:

  • 人们在图片上看不到它,因为我使用了打印按钮并粘贴到了画图中,但图像在很大程度上是分散的
  • 屏幕的右侧部分被切断
  • 精灵将移动到顶部
  • 我正在使用
    graphics.ToggleFullScreen()

    有没有办法保持窗口模式下的原始状态?也许在4:3模式下放置柔性杆并保持精灵位置?我的位置是固定的。所以使用类似
    spriteBatch.Draw(Params.CUR\u SPRITE\u P1,新矩形(Convert.ToInt32(POSITION\u P1.X),Convert.ToInt32(POSITION\u P1.Y),750476),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()方法中。 我的虚拟屏幕大小是800x480。我用1920x1080大小的显示器测试了一下,效果很好