2016-11-14 30 views
0

我試圖創建的「遊戲」在屏幕上同時有許多按鈕和圖像,並且按鈕是爲底座(我相信是800x600)控制檯大小而設計的。按鈕和精靈都在設定的位置。縮放所有圖像到控制檯大小XNA

我遇到的問題是當我做isfullscreen = true時,試圖讓每個圖像縮放。圖像保持在它們的相對位置,但我需要它們根據窗口的實際大小來「縮放」。

在搜索答案的過程中,我發現了許多可以根據縱橫比縮放個別圖像或縮放它們的方法,但我所要做的是縮放所有圖像,無論縱橫比如何,取決於實際尺寸XNA窗口。例如,如果我在800x600屏幕上放置3個100x60的精靈和2個200x90的精靈,如果將窗口大小更改爲1980x720而無需操作每個圖像,如何將精靈的大小更改爲相同的相對大小?

感謝

編輯:我用一個矩陣規模嘗試,但似乎需要我設置的確切規模爲精確的尺寸,這意味着我必須創建一個不同規模的矩陣爲每一個可能的窗口大小,這不是我想要實現的。

回答

0

我已經解決了我一直在使用ScaleMatrix的問題,因爲之前我錯誤地使用了它們。我之前使用的是(800,600)的矩陣,但現在(我現在無法訪問環境,所以它必須是僞)我已經更改了代碼,所以它的變量比例:

(F)的XScale = 800/Viewport.Width

(F)Yscale = 600/Viewport.Height

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

我然後將其傳遞給Spritebatch.Begin。問題是,如果你有東西渲染到一個三角形(如背景),那麼你可能希望在不同的spritebatch中渲染它。由於這個尺度會混淆三角形。

我有一個背景矩形,它將比例應用到屏幕上。它很好,如果它是你想要縮放的東西,比如一個矩形按鈕。