在XNA中更改游戏大小

在XNA中更改游戏大小,xna,Xna,我不知道更好的说法,但我不想改变窗户的大小。我正在创建一个迷宫,它的大小可以通过脚本更改。因此,这可能会使窗口显示的迷宫变大(即使在全屏上。是否有办法缩小/放大窗口内的实际游戏?好吧,你所问的通常只是一个糟糕的用户体验,因为如果迷宫改变大小,游戏的大小会改变 也就是说,您所要求的在技术上是可能的。方法是使用SpriteBatch.Begin的最后一个参数的矩阵 这个矩阵看起来像 Matrix.CreateScale(windowWidth / gameContentTotalWidth, win

我不知道更好的说法,但我不想改变窗户的大小。我正在创建一个迷宫,它的大小可以通过脚本更改。因此,这可能会使窗口显示的迷宫变大(即使在全屏上。是否有办法缩小/放大窗口内的实际游戏?

好吧,你所问的通常只是一个糟糕的用户体验,因为如果迷宫改变大小,游戏的大小会改变

也就是说,您所要求的在技术上是可能的。方法是使用SpriteBatch.Begin的最后一个参数的矩阵

这个矩阵看起来像

Matrix.CreateScale(windowWidth / gameContentTotalWidth, windowHeight / gameContentTotalHeight, 1);

这将缩放游戏内容,使其始终在屏幕内绘制。然而,这意味着如果你制作了一个大型迷宫,你很可能最终无法导航,因为你很难看到你要去哪里。

我认为更好的解决方案可能是显示一个窗口,随着玩家在屏幕上移动而滚动。如果你缩小/拉伸游戏世界你的演示文稿在迷宫中绝不会一致。我担心的是,这是一个迷宫,如果它滚动,玩家会迷路。我会称之为任何迷宫的一个功能,促进用户迷路。但另一个选择是将迷宫限制在合理的最大尺寸内,并将其作为min窗口的大小。我认为无论你打算拥有一个好的用户体验,收缩/拉伸都是有限度的。