0

我使用 XNA 制作游戏。我想在屏幕中心对齐精灵。这在全屏设置为 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 中使用 XNA 4.0

PS2:对不起我的语法,我不会说流利的英语:)

4

2 回答 2

2

可能是因为你的精灵的左上角被绘制在屏幕的中间,这意味着精灵将被稍微绘制在右侧并且稍微低一些。尝试比 0.5、0.45 甚至更低的值情人。这应该会有所帮助。

于 2014-03-19T03:01:58.607 回答
2

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

  1. 将 a 设置Rectangle()为对象,并使其充当边界框,并使用该.Center特征对齐它的中心。
  2. height和你一样除以width2,然后减去图像本身的高度和宽度的一半(如果你找不到,那么只需使用上面的边界框)。

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

于 2015-03-30T16:22:38.310 回答