我用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
PS2 :很抱歉我的语法,我的英语说得不流利:)
发布于 2014-03-19 11:01:59
可能是因为您的sprite的左上角是在屏幕的中间绘制的,这意味着sprite将在右侧略微绘制,也将略微降低。请尝试使用小于0.5、0、45甚至更小的值lover。这应该会有帮助。
发布于 2015-03-31 00:22:38
好吧,如果另一个答案不起作用,那么一个更长但更有效的方法也是:
Rectangle(),并将其用作边界框,并使用.Center功能将其中心对齐。height和width除以2,然后减去图像本身的高度和宽度的一半(如果找不到,则使用上面的边界框)。希望这篇文章能有所帮助,我知道这篇文章现在有点老了,但其他人可能会偶然发现这篇文章,并欣赏这篇文章的答案!
https://stackoverflow.com/questions/15681311
复制相似问题