使用XNA,我試圖讓一個冒險遊戲引擎,可以讓你做遊戲,看上去就像他們跌出了90年代初,像觸手和薩姆&最大命中的日道路。因此,我希望遊戲實際運行在320x240(我知道,它應該可能是320x200,但噓),但它應該放大取決於用戶設置。縮放整個屏幕在XNA
它的工作方式現在好了,但我遇到了一些問題,我真的希望它看起來更多像素化,它目前。
下面是我在做什麼現在:
在遊戲初始化:
public Game() {
graphics = new GraphicsDeviceManager(this);
graphics.PreferredBackBufferWidth = 640;
graphics.PreferredBackBufferHeight = 480;
graphics.PreferMultiSampling = false;
Scale = graphics.PreferredBackBufferWidth/320;
}
規模是一個公共靜態變量,我可以檢查任何時候看到我多少應該相對我的球技規模到320x240。
在我的繪圖功能:
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.Default, RasterizerState.CullNone, null, Matrix.CreateScale(Game.Scale));
這樣,一切都在320×240繪製並炸燬,以適應當前的分辨率(默認爲640×480)。當然,我做數學將鼠標的實際座標轉換爲320x240座標,等等。
現在,這是偉大的,所有,但現在我正在開始擴大我的精靈,讓他們走到遠處等等。
看看下面的圖片。左上角的圖像是遊戲以640x480運行時的截圖。右邊的圖像是它應該看起來如何,在320x240。底部的一排圖像只是最高達300%(在Photoshop中,不在引擎中),所以你可以看到我在說什麼。
在640×480的圖像,你可以看到不同的 「線寬」;較粗的線是它應該看起來的樣子(一個像素= 2x2,因爲它運行在640x480),但是較細的線(1x1像素)也會出現,當它們不應該時,由於縮放(請參閱右側的圖像)。
基本上我試圖模仿一個320x240的顯示器,但炸到使用XNA的任何分辨率,而矩陣轉換沒有做到這一點。有什麼辦法可以做到這一點?
感謝一大堆!我做了最後一個SpriteBatch調用:spriteBatch.Begin(SpriteSortMode.Deferred,BlendState.NonPremultiplied,SamplerState.PointClamp,DepthStencilState.Default,RasterizerState.CullNone);爲了使投影看起來不模糊,但它看起來很棒!再次感謝! –