2009-04-06 44 views

Trả lời

58

tôi phát hiện ra rằng bạn cần phải thiết lập các

GraphicDevice.PreferredBackBufferHeight = height; 
GraphicDevice.PreferredBackBufferWidth = width; 

Khi bạn làm điều này trong constructor của lớp game nó hoạt động, nhưng khi bạn cố gắng thực hiện việc này bên ngoài các nhà xây dựng, bạn cũng cần phải gọi

GraphicsDevice.ApplyChanges(); 

Bên cạnh đó phải có độ toàn màn hình (mà là không thực sự hoạt động chính xác trong khi gỡ lỗi), bạn có thể sử dụng

if (!GraphicsDevice.IsFullScreen) 
    GraphicsDevice.ToggleFullScreen(); 
+3

Câu trả lời này hơi lỗi thời, vì vậy tôi khuyên bạn nên kiểm tra câu trả lời của Fuex bên dưới. Nó chủ yếu là giống nhau nhưng mã sẽ biên dịch mà không có bất kỳ chỉnh sửa nào. –

+0

Điều này hoạt động tốt trên phiên bản mới nhất. – krowe

-1

Giải pháp này hoạt động trong XNA 3.0. Chỉ cần đặt nó trong constructor đối tượng trò chơi của bạn:

// Resize the screen to 1024 x 768. 
IntPtr ptr = this.Window.Handle; 
System.Windows.Forms.Form form = (System.Windows.Forms.Form)System.Windows.Forms.Control.FromHandle(ptr); 
form.Size = new System.Drawing.Size(1024, 768); 

graphics.PreferredBackBufferWidth = 1024; 
graphics.PreferredBackBufferHeight = 768; 

graphics.ApplyChanges(); 
69

Tính đến XNA 4.0 sở hữu này ngay bây giờ được tìm thấy trên GraphicsDeviceManager. Tức là. mã này sẽ xuất hiện trong trình tạo của Game.

graphics = new GraphicsDeviceManager(this); 
graphics.IsFullScreen = false; 
graphics.PreferredBackBufferHeight = 340; 
graphics.PreferredBackBufferWidth = 480; 

// if changing GraphicsDeviceManager properties outside 
// your game constructor also call: 
// graphics.ApplyChanges(); 
+0

Câu trả lời của Sjors Miltenburg dưới đây hiện đã lỗi thời. Câu trả lời này bởi Fuex là thích hợp cho XNA 4.0. – Xonatron

+0

Tuy nhiên, bạn vẫn sẽ muốn thực hiện đồ họa.ApplyChanges() sau này. –

Các vấn đề liên quan