से इसे जारी रखते हुए पहलू अनुपात सवाल है, मैं अन्य लोगों को क्या प्रयोग कर रहे हैं सुनने के लिए जब 2 डी यूआई सिस्टम (सबसे अधिक संभावना अपने स्वयं के देसी समाधान) पर काम कर रहा इच्छुक हूँ। विशेष रूप से, आप समन्वय प्रणालियों को कैसे संभालते हैं। मेरे दिमाग में तीन विकल्प हैं:
- हार्ड-कोडित निर्देशांक (जैसे: 0 -> 720, 0 -> 576)
- सामान्यीकृत समन्वय (0.0 -> 1.0, 0.0 -> 1.0), प्रतिपादन से पहले वास्तविक निर्देशांक में मैप किया गया
- वर्चुअल को-ऑर्डिनेट्स (जैसे: 0 -> 1600, 0 -> 1000), रेंडर करने से पहले वास्तविक निर्देशांक में मैप किया गया
यदि आप एक निश्चित प्लेटफ़ॉर्म पर हैं तो हार्ड-कोडेड केवल उपयोगी है और जानते हैं कि आपके स्क्रीन स्पेस निर्देशांक पहले से क्या हैं, या यदि आप स्क्रीन आयामों के हर संभव सेट के लिए लेखक स्क्रीन लेआउट के लिए तैयार हैं।
सामान्यीकृत सह-निर्देशांक अच्छे हैं, लेकिन अस्पष्टता से ग्रस्त हैं जब स्क्रीन का पहलू अनुपात तय नहीं किया जाता है (उदाहरण के लिए एक अलग भौतिक समन्वय के 0.75 मानचित्र जब वाइडस्क्रीन में 4: 3 में चलता है)। इसके अलावा, लेखकों के लिए, यह यूआई तत्व घोषित करने के लिए वास्तव में प्रतिरूपात्मक है (0.2 x 0.2), केवल यह खोजने के लिए कि यह वास्तव में वर्ग नहीं है जब प्रदान किया गया हो।
वर्चुअल को-ऑर्डिनेट्स असंदिग्ध होते हैं, लेकिन समान समस्याओं से पीड़ित होते हैं, जैसे कि रिमैपिंग चरण में सामान्यीकृत को-ऑर्डिनेट्स: एक छोटे से दशमलव विसंगति का परिणाम ऑफ-वन-वन त्रुटियों में हो सकता है, जिसका अर्थ है कि यूआई तत्व जो अब उनके बीच सीम होना चाहिए।
इसी तरह, जब आपके पास एक निश्चित रिज़ॉल्यूशन स्क्रीन होती है, तो सामान्यीकृत और आभासी दोनों तरह के निर्देशांक का मतलब है कि यूआई छवि में आपके कलाकार के पतले तैयार किए गए पिक्सल और स्क्रीन पर पिक्सल के बीच 1: 1 की गारंटी देना बहुत मुश्किल है, जिसका अर्थ है कि आप जोखिम उठाते हैं गंदा स्केलिंग कलाकृतियों (यह मानते हुए कि आप स्क्रीन पर बनावट वाले क्वैड के रूप में प्रस्तुत कर रहे हैं)।
हम वर्चुअल को-ऑर्डिनेट दृष्टिकोण के साथ गए हैं, विशेष रूप से पहलू अनुपात के बारे में अस्पष्टता से बचने के लिए। इसलिए जब 16:10 स्क्रीन पर रेंडर किया जाता है, तो UI स्पेस (0,0) -> (1600,1000) होता है, लेकिन जब 4: 3 में दिया जाता है, तो यूआई स्पेस वास्तव में (133,0) -> (1467) होता है , 0)।
क्या ऐसे कोई बेहतर उपाय हैं जिनके बारे में मुझे अभी जानकारी नहीं है? क्या इन 3 दृष्टिकोणों की समस्याओं को कम करने के लिए कोई अच्छी रणनीति है?