Android डिवाइस, अलग-अलग नाप या आकार और स्क्रीन साइज़ में उपलब्ध होते हैं. सामान्य कैटगरी में ये शामिल हैं:
- मोबाइल फ़ोन
- टैबलेट
- टेलीविज़न और टेलीविज़न सेट-टॉप बॉक्स
- Chrome के लिए Android रनटाइम वाले लैपटॉप
गेम में अलग-अलग आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) होने पर, आपके गेम को अलग-अलग स्क्रीन रिज़ॉल्यूशन पर देखा जा सकता है. उदाहरण के लिए:
- लैंडस्केप ओरिएंटेशन में दिखाया गया फ़ोन, जिसका आसपेक्ट रेशियो 19:9 (2280x1080) है
- लैंडस्केप ओरिएंटेशन में एक अलग फ़ोन, जिसका आसपेक्ट रेशियो 20:9 (3200x1400) है
- 16:9 आसपेक्ट रेशियो (1920x1080) वाला 1080 पिक्सल एचडी टीवी
- 4:3 आसपेक्ट रेशियो (2048x1536) वाला टैबलेट
स्क्रीन रिज़ॉल्यूशन और डिवाइस के आसपेक्ट रेशियो या चौड़ाई-ऊंचाई के अनुपात पर ध्यान दिए बिना आपके गेम को सही प्रज़ेंटेशन देने के लिए, इन अंतरों को ध्यान में रखा जाना चाहिए.
डिफ़ोल्ड प्रोजेक्शन मोड
डेफ़ोल्ड प्रोजेक्ट का बुनियादी रिज़ॉल्यूशन होता है, जिसे कॉन्फ़िगर किया जा सकता है. यह रिज़ॉल्यूशन इसमें सेट किया गया है
डिसप्ले कैटगरी में चौड़ाई और ऊंचाई फ़ील्ड का इस्तेमाल करने वाली game.project
फ़ाइल.
![प्रोजेक्ट की डिसप्ले सेटिंग खोलें](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_settings.png?hl=hi)
De Fold का डिफ़ॉल्ट तरीका बेस रिज़ॉल्यूशन पर रेंडर करना और फिर स्केल करना है इससे मिलने वाली इमेज को टारगेट किए गए डिवाइस के असल रिज़ॉल्यूशन में बदला जा सकता है. डीफ़ोल्ड का मतलब है इस मोड को स्ट्रेच प्रोजेक्शन के रूप में सेट करें. स्ट्रेच प्रोजेक्शन ओरिजनल आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) कुछ गेम के लिए, यह डिफ़ॉल्ट विज़ुअल तौर पर सही हो सकता है. स्टैंडर्ड डेफ़ोल्ड रेंडरिंग स्क्रिप्ट में दो अतिरिक्त प्रोजेक्शन विकल्प शामिल होते हैं जो आधार के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बनाए रखते हैं: फ़िक्स्ड फ़िट प्रोजेक्शन और फ़िक्स्ड प्रोजेक्शन.
नीचे दिए गए उदाहरण में, बेस रिज़ॉल्यूशन के लिए डिज़ाइन किया गया सैंपल प्रोजेक्ट दिखाया गया है का साइज़ 480x272 होना चाहिए. यह डेटा फ़ोल्ड एडिटर में दिखता है.
इस उदाहरण में:
- टाइलमैप ऑब्जेक्ट का इस्तेमाल, बेस रिज़ॉल्यूशन के बॉर्डर के चारों ओर फ़्रेम बनाने के लिए किया जाता है.
- दो स्प्राइट ऑब्जेक्ट और एक टेक्स्ट ऑब्जेक्ट, बेस रिज़ॉल्यूशन की सीमाओं के अंदर मौजूद हैं.
- चार स्प्राइट ऑब्जेक्ट, बेस रिज़ॉल्यूशन की सीमाओं के बाहर, ऊपर, नीचे, बाएं, और दाएं स्थित होते हैं.
![प्रोजेक्ट ऑब्जेक्ट लेआउट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_project.png?hl=hi)
जब इसे 960x544 के डिसप्ले रिज़ॉल्यूशन पर चलाया जाता है, तो यह बेस रिज़ॉल्यूशन से ठीक दोगुना होता है, प्रोजेक्ट इस तरह दिखता है:
![डिफ़ॉल्ट स्ट्रेच प्रोजेक्शन का इस्तेमाल करके 2x बेस रिज़ॉल्यूशन पर प्रोजेक्ट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_base.png?hl=hi)
स्ट्रेच प्रोजेक्शन
नीचे दिए गए उदाहरण, विंडो का साइज़ डिफ़ॉल्ट रूप से बदलने के बाद मिलने वाले नतीजों को दिखाते हैं स्ट्रैच प्रोजेक्शन, जहां आसपेक्ट रेशियो बरकरार नहीं है:
![स्ट्रेच प्रोजेक्शन का इस्तेमाल करके हॉरिज़ॉन्टल तौर पर स्क्वॉश किए गए प्रोजेक्ट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_stretch_small.png?hl=hi)
![स्ट्रेच प्रोजेक्शन की मदद से, हॉरिज़ॉन्टल तौर पर स्ट्रेच किए गए प्रोजेक्ट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_stretch_large.png?hl=hi)
फ़िक्स्ड-फ़िट प्रोजेक्शन
फ़िक्स-फ़िट प्रोजेक्शन मोड, बेस रिज़ॉल्यूशन के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बनाए रखता है. आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) सुरक्षित है. इसलिए, स्क्रीन पर ऐसा अतिरिक्त हिस्सा दिखेगा जो स्केल किए गए बेस रिज़ॉल्यूशन में कवर किया जाता है. आसपेक्ट के मुख्य ऐक्सिस के आधार पर अनुपात अंतर, यह अतिरिक्त क्षेत्र ऊपर और नीचे या बाईं ओर मौजूद होता है पर क्लिक करें. फ़िक्स्ड-फ़िट प्रोजेक्शन से बेस में बदलाव होगा इस क्षेत्र के लिए खाते का समाधान है. इस बदलाव की वजह से गेम सीन के बेस रिज़ॉल्यूशन के बाहर के हिस्से, रेंडर किए जा रहे हैं. इससे बनने वाली इमेज को डिसप्ले रिज़ॉल्यूशन के हिसाब से स्केल किया जाता है.
नीचे दिए गए उदाहरणों में, डिसप्ले में तय फ़िट होने वाली प्रोजेक्शन रेंडरिंग के बारे में बताया गया है जिसका आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 480x272 वाले बेस रिज़ॉल्यूशन से अलग हो:
![फ़िक्स्ड-फ़िट प्रोजेक्शन का इस्तेमाल करके, ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) में प्रोजेक्ट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_fixfit_letterbox.png?hl=hi)
![फ़िक्स्ड-फ़िट प्रोजेक्शन का इस्तेमाल करके, लंबे आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) वाले प्रोजेक्ट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_fixfit_pillarbox.png?hl=hi)
फ़िक्स्ड प्रोजेक्शन
फ़िक्स्ड प्रोजेक्शन मोड, बेस रिज़ॉल्यूशन के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) और स्केल को बनाए रखता है किसी खास ज़ूम फ़ैक्टर के आधार पर बेस रिज़ॉल्यूशन. डिसप्ले के हिसाब से रिज़ॉल्यूशन और ज़ूम फ़ैक्टर, बेस रिज़ॉल्यूशन एरिया का सबसेट या सुपरसेट दिखाए जा सकते हैं.
ये उदाहरण स्क्रीन का इस्तेमाल करके फ़िक्स प्रोजेक्शन मोड दिखाते हैं 1x और 2x ज़ूम फ़ैक्टर के साथ 644x408 का रिज़ॉल्यूशन, क्रम से:
![फ़िक्स प्रोजेक्शन की मदद से 1x ज़ूम के साथ 644x408 में प्रोजेक्ट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_fixed_1x.png?hl=hi)
![फ़िक्स प्रोजेक्शन की मदद से 2x ज़ूम के साथ 644x408 में प्रोजेक्ट का उदाहरण](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_fixed_2x.png?hl=hi)
प्रोजेक्शन मोड बदलना
चालू प्रोजेक्शन मोड को सही समय पर भेजकर, रनटाइम के दौरान स्विच किया जा सकता है मैसेज को रेंडर करने के लिए, उसका इस्तेमाल किया जा सकता है. ये मैसेज, स्टैंडर्ड डिफ़ोल्ड मैसेज का इस्तेमाल करके भेजे जाते हैं सिस्टम. सभी प्रोजेक्शन मोड के मैसेज में पास और दूर की जानकारी देने वाले पैरामीटर शामिल होते हैं (प्लेन Z) के मान.
-- Change to stretch projection mode
msg.post("@render:", "use_stretch_projection", { near = -1, far = 1 })
-- Change to fixed fit projection mode
msg.post("@render:", "use_fixed_fit_projection", { near = -1, far = 1 })
-- Change to fixed projection mode
msg.post("@render:", "use_fixed_projection", { near = -1, far = 1, zoom = 2 })
रेंडर स्क्रिप्ट डिफ़ोल्ड करें
डिफ़ोल्ड रेंडरिंग व्यवहार को एक खास स्क्रिप्ट फ़ाइल से कंट्रोल किया जाता है. इसे रेंडर कहा जाता है स्क्रिप्ट. De Fold Engine की अन्य स्क्रिप्ट की तरह ही, रेंडर स्क्रिप्ट भी Lua में लिखी जाती है प्रोग्रामिंग भाषा है. प्रोजेक्ट बनाते समय, डिफ़ॉल्ट रेंडर स्क्रिप्ट शामिल होती है, हालांकि, इसे कस्टम रेंडर स्क्रिप्ट से भी बदला जा सकता है.
स्ट्रैच, फ़िक्स्ड-फ़िट और फ़िक्स्ड प्रोजेक्शन मोड डिफ़ॉल्ट की सुविधाएं हैं स्क्रिप्ट रेंडर करें. इनमें से किसी मोड का इस्तेमाल करने पर, रेंडर स्क्रिप्ट 2D जनरेट करती है गेम ऑब्जेक्ट को रेंडर करने में इस्तेमाल करने के लिए, ऑर्थोग्राफ़िक प्रोजेक्शन मैट्रिक्स. कॉन्टेंट बनाने इस मैट्रिक्स का कॉन्फ़िगरेशन अलग-अलग होता है, जो प्रोजेक्शन मोड में इस्तेमाल किया गया.
कस्टम रेंडर स्क्रिप्ट का इस्तेमाल करके, टेंप्लेट के कॉन्फ़िगरेशन को बढ़ाया या बदला जा सकता है प्रोजेक्शन मैट्रिक्स. डिफ़ॉल्ट स्क्रिप्ट पर काम न करने वाली सुविधाएं, जैसे कि अलग-अलग आसपेक्ट रेशियो के लिए लेटरबॉक्स या पिलरबॉक्स किए जा सकते हैं. साथ ही, इन्हें भी लागू किया जा सकता है जिसमें कस्टम रेंडर स्क्रिप्ट इस्तेमाल की जाती हैं.
ओपन सोर्स डेवलपर ने ऐसी रेंडर स्क्रिप्ट और कैमरा पैकेज बनाए हैं जो ज़्यादा सुविधाएं मिलती हैं. आम तौर पर इस्तेमाल होने वाले दो पैकेज हैं RenderCam और डिफ़ोल्ड-ऑर्थोग्राफ़िक.
जीयूआई सिस्टम डिफ़ोल्ड करें
डीफ़ोल्ड में एक जीयूआई सिस्टम होता है, जो जीयूआई सीन फ़ाइलों के कॉन्सेप्ट पर आधारित होता है. जीयूआई सीन फ़ाइलों में नोड नाम के ऑब्जेक्ट शामिल होते हैं, जो अलग-अलग यूज़र इंटरफ़ेस (यूआई) एलिमेंट को परिभाषित करते हैं, जैसे कि को इमेज या टेक्स्ट के तौर पर डालना होता है.
जीयूआई सीन फ़ाइलों को, डीफ़ोल्ड गेम ऑब्जेक्ट में कॉम्पोनेंट के तौर पर जोड़ा जा सकता है. जीयूआई सीन और उनके शामिल किए गए नोड अलग-अलग रेंडर होते हैं और उनके काम करने का तरीका थोड़ा अलग होता है सामान्य गेम ऑब्जेक्ट से निकाल सकते हैं. इन अंतरों की वजह से, एक से ज़्यादा जीयूआई सीन वाले डिसप्ले रिज़ॉल्यूशन में, विषय से जुड़ी कुछ और बातें से लेकर GUI सिस्टम निर्देशांक और GUI नोड पिवट और एंकर.
जीयूआई सिस्टम कोऑर्डिनेट
नॉर्मल डेफ़ोल्ड गेम ऑब्जेक्ट, वर्ल्ड स्पेस में अपने निर्देशांक बताते हैं. कैमरा ऑब्जेक्ट, वर्ल्ड स्पेस को स्क्रीन स्पेस में बदल देता है और गेम के ऑब्जेक्ट को दिखाता है कैमरे के मौजूदा वर्चुअल व्यू के दायरे में आ जाते हैं. जीयूआई सिस्टम खुद का इस्तेमाल करता है अलग कैमरा सेट करें. जीयूआई सीन से जुड़े नोड, स्क्रीन स्पेस कोऑर्डिनेट इस्तेमाल करते हैं के बजाय, अंतरिक्ष के निर्देशांकों को देख सकते हैं. जब डिसप्ले रिज़ॉल्यूशन, जीयूआई नोड को लेआउट करने के लिए इस्तेमाल किया जाने वाला प्रोजेक्ट बेस रिज़ॉल्यूशन, जिसकी वजह से नोड बन सकते हैं पैरंट नोड के किनारे या स्क्रीन के किनारों के हिसाब से अलग-अलग मार्जिन हों. डेफ़ोल्ड में जीयूआई के लेआउट में बदलाव करने के कई विकल्प मौजूद हैं डिसप्ले रिज़ॉल्यूशन में अंतर होता है.
जीयूआई नोड पिवट और ऐंकर
जीयूआई नोड को वर्टिकल और/या हॉरिज़ॉन्टल किनारों पर ऐंकर किया जा सकता है. X ऐंकर और Y ऐंकर प्रॉपर्टी.
- अगर किसी नोड में पैरंट नोड है, तो ऐंकर पैरंट नोड के किनारों पर होता है.
- अगर किसी नोड में कोई पैरंट नोड नहीं है, तो ऐंकर स्क्रीन के किनारों पर होता है.
नीचे दिए गए उदाहरण में, दो जीयूआई नोड यानी कंट्रोलर के साथ एक सैंपल सीन दिखाया गया है
आइकन पर क्लिक करें. दोनों नोड में X ऐंकर और
Y ऐंकर को None
पर सेट किया गया:
![जीयूआई एलिमेंट वाला सैंपल सीन](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_gui_anchor_none.png?hl=hi)
जब ऐंकर के बिना डिसप्ले का साइज़ बदला जाता है, तो कंट्रोलर के आइकॉन में बदलाव नहीं होता बेस रिज़ॉल्यूशन के हिसाब से इनकी पोज़िशन:
![जीयूआई एलिमेंट के साथ साइज़ बदला गया सैंपल सीन, जिसमें ऐंकर सेट नहीं किए गए हैं](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_gui_anchor_none_stretch.png?hl=hi)
None
पर सेट किए गए हैंजब सबसे नीचे बाएं नोड का Y ऐंकर Bottom
पर सेट होता है और
सबसे ऊपर दाएं नोड का Y ऐंकर Top
पर सेट है और जीयूआई नोड ऐंकर करेंगे
स्क्रीन के किनारों को सही दिशा में सेट करना:
![जीयूआई एलिमेंट के साथ साइज़ बदला गया सैंपल सीन, जिसमें ऐंकर किनारों पर सेट किए गए हैं](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_gui_anchor_edge.png?hl=hi)
Edges
पर सेट किए गए हैंजीयूआई नोड की पिवट प्रॉपर्टी, नोड की सीमाओं पर पॉइंट तय करती है
रेक्टैंगल, जो अपने स्क्रीन-स्पेस कोऑर्डिनेट पोज़िशन से मेल खाता है
प्रॉपर्टी. GUI नोड, Center
सेटिंग की स्थिति पर डिफ़ॉल्ट रूप से सेट होते हैं
बाउंड रेक्टैंगल के डायरेक्ट सेंटर में. अन्य पिवट
सेटिंग में चार कार्डिनल दिशा-निर्देश और चार डायगनल शामिल हैं. कॉन्टेंट बनाने
पिवट प्रॉपर्टी का इस्तेमाल करने पर, मार्जिन स्पेस के स्पेसिफ़िकेशन को आसान बनाया जा सकता है
X ऐंकर और Y ऐंकर प्रॉपर्टी के साथ जुड़ा होता है.
नीचे दिए गए उदाहरण में, नीचे बाईं ओर कंट्रोलर आइकॉन GUI नोड में
0,0
और पिवट की जगह को Center
पर सेट किया गया है.
![केंद्र पर सेट किया गया पिवट वाला जीयूआई नोड](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_pivot_center.png?hl=hi)
Center
पर सेट किया गयापिवट को South West
नतीजों में बदलने से, नीचे दिए गए अडजस्टमेंट में बदलाव हो सकता है:
![दक्षिण-पश्चिम पर सेट किया गया पिवट वाला जीयूआई नोड](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_pivot_southwest.png?hl=hi)
South West
पर सेट किया गयाजीयूआई नोड एडजस्ट करने के मोड
डिसप्ले रिज़ॉल्यूशन, बेस से अलग होने पर जीयूआई नोड का साइज़ बदल सकता है
उसका समाधान नहीं किया जा सकता. अडजस्ट मोड प्रॉपर्टी, स्केलिंग के व्यवहार को कंट्रोल करती है
नोड कॉन्टेंट का इस्तेमाल करना शुरू कर देते हैं. मोड में बदलाव करें में तीन सेटिंग होती हैं: Fit
, Zoom
, और
Stretch
.
फ़िट करें
Fit
सेटिंग नोड सामग्री के आसपेक्ट रेशियो या चौड़ाई-ऊंचाई का अनुपात बनाए रखती है. कॉन्टेंट है
नोड के बदले गए सीमा की चौड़ाई या ऊंचाई से मैच करने के लिए स्केल किया गया
आयत. चुने गए ऐक्सिस में कम अंतर है. इससे पक्का होता है कि
कॉन्टेंट, बाउंड रेक्टैंगल के मूल आसपेक्ट रेशियो में फ़िट हो जाता है.
Zoom
Zoom
सेटिंग में नोड के कॉन्टेंट का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) भी बना रहता है. पसंद करें
Fit
सेटिंग Zoom
, कॉन्टेंट की लंबाई या चौड़ाई के हिसाब से स्केल करती है, ताकि
नोड के बदले गए बाउंड बाउंड रेक्टैंगल. Fit
के उलट, Zoom
ऐक्सिस का इस्तेमाल
मिलान लक्ष्य के रूप में मूल आकार से ज़्यादा बड़ा अंतर है. इसका मतलब है कि
स्केल किया गया कॉन्टेंट, बाउंड रेक्टैंगल से बाहर निकल सकता है.
अलग-अलग अडजस्ट मोड वाले दो जीयूआई नोड का उदाहरण नीचे दिया गया है
सेटिंग. सबसे नीचे बाएं कंट्रोलर के आइकॉन में, Fit
का अडजस्ट मोड होता है, जबकि
सबसे ऊपर दाईं ओर मौजूद कंट्रोलर के आइकॉन में Zoom
का अडजस्ट मोड होता है.
![अलग-अलग अडजस्ट मोड सेटिंग वाले दो जीयूआई नोड](https://developer.android.google.cn/static/images/games/engines/defold/Resolution_adjust_mode_fit_zoom.png?hl=hi)
खींचें
Stretch
सेटिंग, नोड के कॉन्टेंट को नोड के कॉन्टेंट से पूरी तरह मेल खाने के लिए स्केल करती है
आकार में बदला गया बाउंड रेक्टैंगल. ओरिजनल आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) सेव नहीं किया गया है.
जीयूआई लेआउट
डिफ़ोल्ड की मदद से, जीयूआई के लेआउट को अलग-अलग स्क्रीन के हिसाब से बदला जा सकता है रिज़ॉल्यूशन: लेआउट. लेआउट को ओवरराइड करने के लिए किसी जीयूआई सीन में लेआउट जोड़े जा सकते हैं डिफ़ॉल्ट जीयूआई नोड प्रॉपर्टी. लेआउट किसी खास स्क्रीन से जुड़ा होता है का रिज़ॉल्यूशन. एक से ज़्यादा लेआउट उपलब्ध होने पर, 'डीफ़ोल्ड करें' विकल्प से लेआउट चुना जाएगा जो असल स्क्रीन रिज़ॉल्यूशन से सबसे करीब से मेल खाते हों. डिफ़ॉल्ट स्थिति, जीयूआई नोड में इस्तेमाल होने वाले साइज़, स्केल या ग्राफ़िक रिसॉर्स में बदलाव करने पर, लेआउट.
अन्य संसाधन
- डिफ़ोल्ड मैन्युअल - रेंडर करने वाले पाइपलाइन
- डिफ़ोल्ड मैन्युअल - जीयूआई सीन
- डिफ़ोल्ड मैन्युअल - जीयूआई लेआउट