खोज…


व्यूपोर्ट

कई प्रस्तावों और पहलू अनुपात का समर्थन करने के लिए Libgdx तथाकथित Viewports का उपयोग करता है।
कुछ प्रकार के Viewports जो विभिन्न प्रस्तावों और पहलू अनुपात को संभालने के लिए विभिन्न रणनीतियों का उपयोग करते हैं।
एक Viewport हुड के नीचे एक Camera का उपयोग करता है और यह viewportHeight और viewportWidth का प्रबंधन करता है। आप वैकल्पिक रूप से Viewport को इसमें निर्माता के रूप में Camera दे सकते हैं, अन्यथा यह डिफ़ॉल्ट रूप से एक OrthographicCamera उपयोग करेगा:

private Viewport viewport;
private Camera camera;

public void create() {
   camera = new PerspectiveCamera();
   viewport = new FitViewport(8f, 4.8f, camera);
}  

इसके अतिरिक्त, आपको worldWidth और worldHeight को व्यूपोर्ट के कंस्ट्रक्टर को निर्दिष्ट करना होगा। यह स्थान उस वर्चुअल कोऑर्डिनेट सिस्टम का प्रतिनिधित्व करेगा, जिसका उपयोग आप ऑब्जेक्ट की स्थिति को निर्दिष्ट करने के लिए उपयोग करेंगे और आकार लेंगे। व्यूपोर्ट परिवर्तन, जिसे स्प्राइटबैच पर लागू किया जा सकता है, उदाहरण के लिए, स्वचालित रूप से तार्किक निर्देशांक को वास्तविक स्क्रीन निर्देशांक में बदलने का ख्याल रखेगा, इस तरह के साथ जो वास्तविक प्रकार के व्यूपोर्ट के अनुरूप है। उदाहरण के लिए, ऑर्थोग्राफ़िक प्रोजेक्शन ( OrthographicCamera , जो कि डिफ़ॉल्ट है) का उपयोग करते समय: यदि आपकी दुनिया का आकार 7.8 मीटर से 12.8 है और आपकी डिवाइस स्क्रीन 2560x1560 पिक्सल है, तो आपकी दुनिया 200 मीटर प्रति घंटे के साथ गतिशील रूप से अनुमानित होगी।

जब Viewport आकार बदलता है (उदाहरण के लिए यदि स्मार्टफोन का स्क्रीन ओरिएंटेशन बदल रहा है), तो आपको Viewport को उस परिवर्तन के बारे में सूचित करना होगा। यह तब Camera s viewportHeight और viewportWidth स्वचालित रूप से अपडेट करेगा:

public void resize(int width, int height) {
    viewport.update(width, height);
}

Viewport भी प्रबंधन एस OpenGL Viewport और आवश्यकतानुसार drawable क्षेत्र को संशोधित।

Viewport एस स्क्रीन-निर्देशांक को गेम-निर्देशांक में परिवर्तित करने के बारे में भी ध्यान रखता है, जिसे विशेष रूप से चुनने के लिए आवश्यक है:

private Vector2 worldPos = new Vector2();
public boolean touchDown (int x, int y, int pointer, int button) {
    worldPos.set(x, y);
    viewport.unproject(worldPos);
    processPicking(worldPos);
}

बिलिन व्यूपोर्ट

बिलियन व्यूपोर्ट के एक जोड़े हैं, कि प्रत्येक अलग-अलग चीजें करते हैं। यहाँ नामों की एक सूची है, और उनके विवरण:

व्यूपोर्ट नाम विवरण
StretchViewport स्क्रीन को स्ट्रेच करेगा। कोई काली पट्टी नहीं, लेकिन पहलू अनुपात बंद हो सकता है।
FitViewport पहलू अनुपात के आधार पर इसका आकार अधिकतम होगा। काली पट्टी बांध सकते थे।
FillViewport एक FitVieport के समान है, लेकिन हमेशा पूरी स्क्रीन भरता है।
ScreenViewport हमेशा पूरी स्क्रीन भरता है, लेकिन किसी भी बच्चे का आकार नहीं बदलता है।
ExtendedViewport दुनिया को एक दिशा में विस्तारित करके काली पट्टी के बिना विश्व पहलू अनुपात रखता है
CustomViewport एक कस्टम प्रोग्राम व्यूपोर्ट। काली पट्टी हो सकती है, और पहलू अनुपात रख सकते हैं।

कस्टम व्यूपोर्ट

आप अपना स्वयं का कस्टम व्यूपोर्ट बना सकते हैं। आपके पास काली पट्टी हो सकती है, और आप इसे कैसे प्रोग्राम करते हैं, उसके आधार पर यह पहलू अनुपात रख सकता है या नहीं भी रख सकता है। एक कस्टम व्यूपोर्ट कुछ इस तरह दिखाई देगा:
public class Tutorial extends Viewport । आपको update(width, height) को ओवरराइड करने की आवश्यकता होगी, लेकिन यह है।

एक और प्रयास सामान्य स्केलिंग ScalingViewport का विस्तार करने के लिए किया जाएगा, और एक और स्केलिंग की आपूर्ति की जाएगी जो पहले से ही आपूर्ति नहीं है। मान लीजिए कि आपने इसे Scaling.none सेट किया है। यह कुछ इस तरह दिखेगा: छवि उदाहरण यदि आप कुछ संदर्भ चाहते हैं, तो आप यहीं पर निर्मित व्यूपोर्ट कक्षाएं पा सकते हैं।

StretchViewport

StretchViewport Viewport एक Viewport प्रकार है, जो एक आभासी स्क्रीन आकार का समर्थन करता है।
यह आपको एक निश्चित (संकल्प स्वतंत्र) चौड़ाई और ऊंचाई को परिभाषित करने की अनुमति देता है।
वर्चुअल सुझाव अनुपात वास्तविक पहलू अनुपात से मेल नहीं खाता है, जैसा कि नाम से पता चलता है, StretchViewport आभासी स्क्रीन को फैलाता है। ओपनजीएल व्यूपोर्ट को संशोधित नहीं किया जाएगा और इसमें काली पट्टियाँ नहीं दिखाई देंगी।

उपयोग:

private Viewport viewport;
private Camera camera;

public void create() {
    camera = new OrthographicCamera();
    viewport = new StretchViewport(80, 48, camera);
}

public void resize(int width, int height) {
    viewport.update(width, height);
}

FitViewport

FitViewports ऐसे व्यूपोर्ट हैं जो हमेशा पहलू अनुपात को बनाए रखते हैं। यह किनारों पर काली पट्टियाँ बनाकर करता है जहाँ जगह बची है। यह सबसे अधिक इस्तेमाल किए जाने वाले व्यूपोर्ट में से एक है।

उपयोग:

private Viewport viewport;
private Camera camera;

public void create() {
    camera = new OrthographicCamera();
    viewport = new FitViewport(80, 48, camera);
}

public void resize(int width, int height) {
    viewport.update(width, height);
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow