XNA में विंडो का आकार कैसे पता करें


10

मैं जानना चाहता था कि क्या XNA में खिड़की के आकार का पता लगाने का कोई तरीका है। मैं इसे एक विशिष्ट आकार में सेट नहीं करना चाहता; मैं जानना चाहूंगा कि वर्तमान में यह अपने आप किस आयाम को प्रदर्शित करता है। क्या इस जानकारी को खोजने का कोई तरीका है?

मुझे लगता है कि मुझे शायद खेल पर काम करने से पहले यह जानकारी मिलनी चाहिए थी (या इसे स्वयं सेट करना चाहिए), लेकिन मैं नौसिखिया हूं और अब मैं उन आयामों के भीतर काम करने की उम्मीद कर रहा हूं, जो पहले से ही निवेश में हो गए हैं।

जवाबों:


15

यहाँ आपके विकल्प हैं:

बैक-बफर आकार का उपयोग प्राप्त करने के लिए:

GraphicsDevice.PresentationParameters.Bounds(एक आयत के लिए) या BackBufferWidthऔर BackBufferHeight

यदि आप व्यूपोर्ट सेट करने, स्क्रीनशॉट लेने आदि जैसे सामान कर रहे हैं तो आप बैक-बफर साइज चाहते हैं।

व्यूपोर्ट प्राप्त करने के लिए , का उपयोग करें:

GraphicsDevice.Viewport.Bounds(एक आयत के लिए) या Widthऔर Height

व्यूपोर्ट का आकार वह है जिसे आप तब उपयोग करना चाहते हैं जब आप वास्तव में सामान प्रदान कर रहे हों । आपके द्वारा देखे जाने वाले किसी भी निर्देशांक SpriteBatchको व्यूपोर्ट के संदर्भ में पिक्सेल-संरेखित क्लाइंट स्पेस में हैं: (0,0) शीर्ष बाएँ पिक्सेल के लिए (चौड़ाई -1, ऊंचाई -1) नीचे दाईं ओर। यदि आप 3D सामान कर रहे हैं, तो व्यूपोर्ट के निचले बाएं भाग में (-1) से प्रोजेक्शन स्पेस (दाईं ओर) ऊपर (1,1) में जाता है।

आप स्क्रीन पर व्यूपोर्ट के आकार और स्थिति को समायोजित कर सकते हैं (विभाजन-स्क्रीन जैसे प्रभाव करने के लिए)। इसलिए, जब इसे बैक-बफर के आकार के लिए आरंभीकृत किया जाता है, तो जरूरी नहीं कि यह हमेशा समान हो।

यदि आप इंटरफ़ेस लेआउट सामान कर रहे हैं, खासकर यदि आप Xbox 360 पर चलेंगे, तो इसके बारे में जानकारी रखें Viewport.TitleSafeArea। यह आपको बताता है कि कौन सा क्षेत्र निश्चित रूप से स्क्रीन पर दिखाई देता है जो सीमा को काट सकता है।

यदि, किसी कारण से, आप वास्तव में गेम विंडो के साथ काम कर रहे हैं, तो उपयोग करें Game.GameWindow.ClientBounds


आपका बहुत बहुत धन्यवाद! मुझे यह निर्दिष्ट करना चाहिए था कि यह एक 2D गेम था लेकिन दोनों जवाब देने के लिए आपको अच्छा लगा। अब Viewports पर पढ़ना।
निक वान Hoogenstyn

2

GraphicsDevice.Viewport.Bounds - यह Rectangle2D लौटाता है और इसमें चौड़ाई और ऊँचाई होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.