我發展爲學校項目的UI,我嘗試了類似的方法來縮放我的紋理在這裏上市,但這裏的問題:如何擴展的Texture2D在XNA與窗口大小調整
我們項目的開發時間爲1440 x 900,因此我製作了適合該屏幕分辨率的自己的圖像。當我們必須在課堂上演示我們的項目時,投影機最多隻能渲染1024 x 768,因此屏幕上的許多內容都會丟失。我添加了窗口大小調整功能,並且我正在按照這種方式進行縮放。我有我自己的叫做「按鈕」的類,它有一個紋理2d和一個由Button控制的Vector2位置(Texture2d img,float width,float height)。
我的想法是將圖像的位置設置爲窗口寬度和高度的可縮放的百分比,所以我試圖將img的位置設置爲0-1之間的數字,然後乘以窗口寬度和高度,以保持一切縮放正確。
(此代碼是不正確的語法,我只是想傳達點)
Button button = new Button(texture, .01, .01);
int height = graphicsdevice.viewport.height * button.position.Y;
int width = graphicsdevice.viewport.width * button.position.X;
Rectangle rect = new Rectangle(0,0,width, height);
sprite.being()
sprite.draw (button.img, rect, color.white);
sprite.end
它不會結束縮放什麼,當我去畫它,並通過拖動調整窗口的大小鼠標左右。如果我以不同的緩衝區高度和緩衝區寬度開頭編碼,則不管分辨率如何,圖像的大小都保持相同,但分辨率越小,圖像看起來越像素化。
什麼是設計我的程序允許動態紋理2D縮放的最佳方式?
爲什麼你將窗口的* size *乘以按鈕的* position *?此外,XNA不會直接通過拖動處理窗口大小調整,請執行谷歌搜索以瞭解如何在XNA中實現此功能。如果你只是全屏運行,你應該沒有問題。 – Hannesh 2011-03-02 19:47:26