XNA全屏故障

XNA全屏故障,xna,fullscreen,Xna,Fullscreen,我用XNA做了一个游戏。我想对齐屏幕中央的精灵。当fullscreen设置为false时,这种方法效果很好。但当我将IsFullScreen设置为true时,它就不起作用了 我启动了控制台并在上面打印屏幕大小。尺寸很好(1366*768)。我还打印鼠标指针的当前位置,当我在右下角时,它显示1279*719,这就是为什么我的精灵没有居中对齐。为什么? width = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width; height =

我用XNA做了一个游戏。我想对齐屏幕中央的精灵。当fullscreen设置为false时,这种方法效果很好。但当我将IsFullScreen设置为true时,它就不起作用了

我启动了控制台并在上面打印屏幕大小。尺寸很好(1366*768)。我还打印鼠标指针的当前位置,当我在右下角时,它显示1279*719,这就是为什么我的精灵没有居中对齐。为什么?

width = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width;
height = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height;

_positionStart = new Vector2(width * 0.5F - _startButton.Width * 0.5F, height * 0.5F - 20);
PS:我在VS2012中使用XNA4.0


对不起,对于我的语法,我英语说得不流利:

很可能是因为你的精灵左上角被画在屏幕中间,这意味着精灵会在右边略微拉低。
尝试将值设置为0.5、0、45甚至更小。这可能会有帮助。

可能是因为你的精灵左上角被画在屏幕的中间,这意味着精灵会在右边稍微拉近,也会略微降低。


尝试将值设置为0.5、0、45甚至更小。这应该会有帮助。

好吧,如果另一个答案不起作用,一个更长但更有效的方法就是:

  • 为对象设置一个
    Rectangle()
    ,并将其用作边界框,然后使用
    .Center
    功能对齐对象的中心
  • 高度
    宽度
    除以2,然后减去图像本身高度和宽度的一半(如果找不到,则使用如上所述的边界框)

  • 希望这能有所帮助,我知道这篇文章现在有点老了,但其他人可能会偶然发现这一点,并感谢这个答案

    好吧,如果另一个答案不起作用,一个更长但更有效的方法就是:

  • 为对象设置一个
    Rectangle()
    ,并将其用作边界框,然后使用
    .Center
    功能对齐对象的中心
  • 高度
    宽度
    除以2,然后减去图像本身高度和宽度的一半(如果找不到,则使用如上所述的边界框)
  • 希望这能有所帮助,我知道这篇文章现在有点老了,但其他人可能会偶然发现这一点,并感谢这个答案