2013-11-02 10 views
5

मैं स्प्राइट किट के ओएस एक्स संस्करण पर एक गेम का परीक्षण कर रहा हूं, और पाया कि कुछ बनावट उनके आकार को गलत तरीके से रिपोर्ट करती हैं। मैं सोच रहा हूं कि कोई और इस समस्या को देख रहा है और क्या इसके लिए कोई स्पष्टीकरण है?स्प्राइट किट ओएस एक्स: एसकेटेक्चर आकार संपत्ति गलत है

किसी भी अन्य समस्या को रद्द करने से पहले मैं इसे एक बग के रूप में रिपोर्ट करता हूं। यदि यह एक ज्ञात बग है, तो कृपया ऐसा कहें।

मैं इस बनावट लोड हो रहा है कर रहा हूँ, यह आकार में 256x256 पिक्सल है:

enter image description here

जब मैं इस छवि से बनाए गए SKTexture प्रवेश करें, फिर SKTexture विवरण मुझे सही आकार लेकिन size संपत्ति देता है नहीं, यह कहता है कि छवि 204.8 x 204.8 है।

tex = <SKTexture> 'Tileset_GeometryB.png' (256 x 256) 
tex.size = {204.80000000000001, 204.80000000000001} // Huh? WTF?!? 
tex.textureRect = {{0, 0}, {1, 1}} 

मैं ठीक उसी बनावट आईओएस सिम्युलेटर और डिवाइस पर एक ही कोड का उपयोग करके लोड - आकार संपत्ति हमेशा सही है: 256x256।

मैंने किसी भी संभावित दुष्प्रभाव से बचने के लिए किसी और चीज से पहले इस बनावट को लोड करने का भी प्रयास किया। अभी भी बनावट का आकार गलत है।

यह ध्यान देने योग्य है कि यह सभी बनावटों के साथ नहीं होता है, लेकिन मेरे द्वारा लोड किए गए सभी 256x256 बनावट पर होता है। एक 128x256 बनावट अपने आकार की सही ढंग से रिपोर्ट करता है।

मैंने एक क्लीन बिल्ड भी किया, और मैं एक्सकोड 5.0.1 (5 ए 2053) के साथ मैवरिक्स (13 ए 603) पर परीक्षण कर रहा हूं।

+0

मैंने ऐप्पल को एक बग के रूप में इसकी सूचना दी। बग आईडी: 15377856 – LearnCocos2D

+0

ठीक है, मैंने ऐसा करने के ठीक बाद, मैंने इसे फिर से बचाने के लिए सीशोर में पीएनजी खोला। उसके बाद आकार की संपत्ति सही है। – LearnCocos2D

उत्तर

3

जाहिर है इस मुद्दे को असंगत छवि कार्यक्रमों के कारण होता है

[tempTexture preloadWithCompletionHandler:^{}]; 

यह भी स्पष्ट करने वाले, मेरे मामले में इंकस्केप हमेशा था अपराधी।

इंकस्केप द्वारा बनाई गई पीएनजी फाइलें सही तरीके से काम करने लगती हैं लेकिन स्पाइट किट का आकार गलत तरीके से रिपोर्ट करने का कारण बनता है। प्रत्येक उदाहरण में यह मेरे साथ हुआ, फिक्स बस पीएनजी फ़ाइल को Seashore में खोलने के लिए था, फिर उसी फ़ाइल नाम के तहत "सेव एज़" को पीएनजी फ़ाइल को फिर से सहेजने के लिए मजबूर करने के लिए मजबूर किया गया था।

मुझे लगता है कि अन्य छवि प्रोग्राम खोलने और सहेजने के साथ-साथ काम भी हो सकता है, शायद पूर्वावलोकन भी इसे ठीक करने में मदद कर सकता है या कमांड लाइन टूल जैसे PNGCrush

एक निश्चित स्थिरता भी है क्योंकि इंकस्केप बनावट आकार 20% कम, यानी 256 बनावट के लिए 204.8, या 1-पिक्सेल बनावट के लिए 0.8 की सूचना दी गई है। यह समस्या इंकस्केप की पीपीआई (पिक्सेल प्रति इंच) सेटिंग के साथ प्रतीत होती है, जहां यह 90 पीपीआई से कम मानों की अनुमति नहीं देता है। लेकिन फ़ोटोशॉप का डिफ़ॉल्ट 72 पीपीआई है जो बिल्कुल 20% कम है। और मैं इसे लेता हूं कि स्प्राइट किट पीएनजी को 72 पीपीआई मानती है, 9 0 पीपीआई छवि प्राप्त करती है, और इस प्रकार गलत तरीके से (या सही ढंग से?) पीएनजी के आकार की गणना करता है जो वास्तव में 20% कम है।

+0

अच्छा खोज। स्पष्ट रूप से एसवीजी (अला इनक्सस्केप) 9 0 डीपीआई है, जबकि अधिकांश अन्य कार्यक्रम 72 डीपीआई का उपयोग करते हैं। मुझे लगता है कि अंतर्निहित अपराधी एनएसआईमेज बनाम यूआईएममेज का व्यवहार है, जो बहुत ही निराशाजनक है। – bw1024

0

क्या आप नियमित तरीकों से बनावट बनाते हैं या वास्तव में इसे स्क्रीन पर दिखाते हैं? मुझे एनिमेशन के साथ आज भी इसी तरह का मुद्दा था, और मुझे लगता है कि इसे बनावट के आलसी लदान के साथ करना है। जब तक आप उनका उपयोग नहीं करते हैं तब तक वे वास्तव में लोड नहीं होते हैं। इस का उपयोग करते हुए और आकार देखने का प्रयास करें: क्यों रेक्ट 0,0,1,1

+0

नहीं, वही परिणाम।बनावट आयत सही बीटीडब्ल्यू है, यह कारक में व्यक्त किया गया है जहां चौड़ाई/ऊंचाई 1 का मतलब बनावट की पूरी चौड़ाई/ऊंचाई है। – LearnCocos2D

संबंधित मुद्दे