Cách tìm kích thước cửa sổ trong XNA


10

Tôi chỉ muốn biết liệu có cách nào để tìm ra kích thước của cửa sổ trong XNA không. Tôi không muốn đặt nó ở một kích thước cụ thể; Tôi muốn biết kích thước hiện tại nó tự động hiển thị. Có cách nào để tìm ra thông tin này?

Tôi nhận ra rằng có lẽ tôi nên tìm ra thông tin này (hoặc tự đặt nó bằng tay) trước khi làm việc với trò chơi, nhưng tôi là người mới và hiện đang hy vọng làm việc trong phạm vi mà tôi đã đầu tư vào. Cảm ơn!

Câu trả lời:


15

Đây là lựa chọn của bạn:

Để có được kích thước bộ đệm trở lại, sử dụng:

GraphicsDevice.PresentationParameters.Bounds(cho một hình chữ nhật) hoặc BackBufferWidthBackBufferHeight.

Bạn muốn kích thước bộ đệm phía sau nếu bạn đang làm những việc như thiết lập chế độ xem, chụp ảnh màn hình, v.v.

Để có được Viewport , hãy sử dụng:

GraphicsDevice.Viewport.Bounds(cho một hình chữ nhật) hoặc WidthHeight.

Kích thước của khung nhìn là những gì bạn muốn sử dụng khi bạn thực sự kết xuất nội dung . Bất kỳ tọa độ nào bạn chuyển đến SpriteBatchđều nằm trong không gian máy khách được căn chỉnh theo pixel theo chế độ xem: (0,0) cho pixel trên cùng bên trái thành (width-1, height-1) cho phía dưới bên phải. Nếu bạn đang thực hiện công cụ 3D, không gian chiếu sẽ đi từ (-1, -1) ở dưới cùng bên trái của chế độ xem đến (1,1) ở trên cùng bên phải.

Bạn có thể điều chỉnh kích thước và vị trí của chế độ xem trên màn hình (để thực hiện các hiệu ứng như chia đôi màn hình). Vì vậy, trong khi nó được khởi tạo với kích thước của bộ đệm ngược, nó không nhất thiết phải luôn giống nhau.

Nếu bạn đang thực hiện công cụ bố trí giao diện, đặc biệt nếu bạn sẽ chạy trên Xbox 360, hãy lưu ý Viewport.TitleSafeArea. Điều này cho bạn biết khu vực nào chắc chắn hiển thị trên màn hình có thể cắt bỏ một số đường viền.

Nếu, vì một số lý do, bạn thực sự đang làm việc với chính cửa sổ trò chơi, hãy sử dụng Game.GameWindow.ClientBounds.


Cảm ơn rất nhiều! Tôi nên xác định rằng đó là một trò chơi 2D nhưng thật tuyệt khi bạn đưa ra cả hai câu trả lời. Đọc lên trên Viewports bây giờ.
Nick Van Hoogenstyn

2

GraphicsDevice.Viewport.Bound - điều này trả về cho Oval2D và nó có các tham số Chiều rộng và Chiều cao.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.