मैं कोको का उपयोग कर मैक के लिए एक गेम लिख रहा हूं। मैं वर्तमान में हिट परीक्षण को कार्यान्वित कर रहा हूं और पाया है कि कैलियर हिट परीक्षण प्रदान करता है, लेकिन अल्फा गुणों को लागू नहीं करता है। जैसा कि मेरे पास कई बार एक दूसरे के शीर्ष पर खड़े कई कैलियर हैं, मुझे वास्तव में यह निर्धारित करने का एक तरीका ढूंढना होगा कि उपयोगकर्ता वास्तव में किस पर क्लिक करना चाहता था।कैलियर सामग्री के अल्फा गुणों का उपयोग कर कैलियर के साथ परीक्षण हिट
मैं सोच रहा हूं कि अगर मैं किसी भी तरह से एक सरणी प्राप्त कर सकता हूं जिसमें सभी कैलियर के पॉइंटर्स शामिल हैं जिनमें क्लिक पॉइंट होता है, तो मैं उनके माध्यम से कुछ फ़िल्टर कर सकता हूं। हालांकि एक ही रास्ता मैं अब तक सरणी बनाने के लिए मिल गया है है:
NSMutableArray* anArrayOfLayers = [NSMutableArray array];
for (CALayer* aLayer in mapLayer.sublayers)
{
if ([aLayer containsPoint:mouseCoord])
[anArrayOfLayers addObject:aLayer];
}
फिर CALayer के z के मूल्यों से सरणी सॉर्ट तो जाँच के माध्यम से जाने यदि स्थान पर पिक्सेल अल्फा है या नहीं। हालांकि, सॉर्ट और अल्फा चेक के बीच यह एक अविश्वसनीय प्रदर्शन हॉग प्रतीत होता है। (आप अल्फा को भी कैसे देखेंगे?)
क्या ऐसा करने का कोई तरीका है?
क्रिस, यह बहुत ही भयानक है! आपके लिए प्रश्न: जब बिंदु में गुजरते हैं, तो ऐसा लगता है कि इसकी उत्पत्ति निचले बाएं बनाम ऊपरी-दाएं होनी चाहिए। मुझे संदेह है कि यह कुछ ऐसा है जो यहां बिंदु को पार करने से पहले होना चाहिए, है ना? (छवि की ऊंचाई का उपयोग करने के अलावा y को चारों ओर फ़्लिप करने के अलावा।) मुझे लगता है कि मैं यह निर्धारित करने की कोशिश कर रहा हूं कि समायोजन कहां सही जगह है - ImagePointIstransparent में, या इशारा/स्पर्श हैंडलर में। –
जैसा कि होता है, मुझे लगता है कि जो प्रश्न मैं उससे पूछता हूं उसके बारे में आप जो पूछ रहे हैं उसके बारे में था - कोर ग्राफिक्स और यूआईकिट में अलग वाई अक्ष है, इसलिए मुझे लगता है कि आप दोनों के बीच इंटरफ़ेस में कनवर्ट करना चाहते हैं। परत को प्रतिपादित करने के विभिन्न तरीकों के प्रदर्शन प्रभाव के बारे में भी एक चर्चा है (इसे बार-बार एक पिक्सेल बनाम बार-बार प्रस्तुत करना), जिसे आप देखना भी चाहेंगे। –
क्रिस, मुझे अभी एहसास हुआ: आप एक मैक ऐप लिख रहे हैं। मैं एक आईओएस ऐप लिख रहा हूं। यह पता चला है कि, रेटिना डिस्प्ले का उपयोग करते समय, यह परीक्षण काम नहीं करता है (आईफोन 4 पर या रेटिना मोड में सिम्युलेटर)। क्वार्ट्ज 2 डी प्रोग्रामिंग गाइड अनुशंसा करता है कि मैं निग्राफिक्सबिनजिन इमेज कॉन्टेक्स्ट विथऑप्शन बनाम निम्न-स्तरीय क्वार्ट्ज फ़ंक्शंस का उपयोग करता हूं, इसलिए मुझे यह देखना होगा कि क्या यह सीटीएम के साथ मदद करता है और इसी तरह। (यह भी समझा सकता है कि प्रतिक्रिया रेटिना पर "जगह पर" क्यों दिखाई देती है।) Http://stackoverflow.com/questions/7506248/alpha-detection-in-layer-ok-on-simulator-not-iphone –