【问题标题】:Scaling all images to console size XNA将所有图像缩放到控制台大小 XNA
【发布时间】:2016-11-14 15:08:56
【问题描述】:

我正在尝试创建的“游戏”同时在屏幕上有许多按钮和图像,并且这些按钮是为基本(我认为是 800x600)控制台尺寸而设计的。按钮和精灵都在设定的位置。

我遇到的问题是尝试让每个图像在我执行 isfullscreen=true 时进行缩放。图像保持在它们的相对位置,但我需要它们根据窗口的实际大小“缩放”。

在寻找答案时,我发现许多可以缩放单个图像或根据纵横比缩放它们,但我试图做的是缩放所有图像,无论纵横比如何,取决于实际大小XNA 窗口。例如,如果我在 800x600 屏幕上放置了 3 个 100x60 精灵和 2 个 200x90 精灵,如果将窗口大小更改为 1980x720 而无需操作每个图像,我将如何将精灵更改为相同的相对大小?

谢谢

编辑:我尝试过使用比例矩阵,但这似乎需要我为该确切大小设置精确比例,这意味着我必须为每个可能的窗口大小创建一个不同的比例矩阵,这不是我的意思努力实现。

【问题讨论】:

    标签: c# c xna sprite


    【解决方案1】:

    我已经解决了我在使用 ScaleMatrix 时遇到的问题,因为我之前使用不正确。

    之前,我使用的是 (800, 600) 的矩阵,但现在(我现在无法访问环境,所以它必须是伪的)我已经更改了代码,因此它是一个可变比例:

    (f)XScale = 800 / Viewport.Width

    (f)Yscale = 600 / Viewport.Height

    Matrix.createScale(XScale, YScale, 1 , 1)

    然后我将它传递给 Spritebatch.Begin。问题是,如果你有渲染到三角形的东西(例如背景),那么你可能希望在不同的 spritebatch 中渲染它。开始因为这个比例会弄乱三角形。

    我有一个背景矩形,它会对其应用比例,使其脱离屏幕。如果它是您希望缩放的东西,例如按钮矩形,那很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      • 2020-06-14
      • 2013-06-21
      • 1970-01-01
      • 2017-08-08
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多