2012-10-19 11 views
5

के पीछे ड्रॉइंग स्प्राइट का बच्चा मैं एक स्प्राइट को एक स्प्राइट में संलग्न करने की कोशिश कर रहा हूं और इसे अपने माता-पिता के पीछे संलग्न कर रहा हूं।एंडइंजिन- अपने माता-पिता

यह आमतौर पर बहुत आसान होता है, और मेरे कोड में पहले यह एक है- लेकिन किसी कारण से, एक बार में, यह काम नहीं करता है।

प्रक्रिया आम तौर पर माता-पिता के जेड इंडेक्स को कुछ संख्या में सेट करने के लिए होती है, और अपने बच्चे को निचला जेड इंडेक्स असाइन करती है। यहां कोड है जहां rect अभिभावक है, और icon इससे जुड़ा हुआ है; दोनों एक मूल इकाई से जुड़े हुए हैं। फिर मैंने sortChildren() सब कुछ (आयत, मूल इकाई, और तब भी दृश्य) पर विधि का प्रयास किया है; मुझे पता है कि यह कुशल नहीं है, लेकिन मैं सिर्फ यह देखना चाहता था कि कुछ कैच हो रहा है या नहीं। यह नहीं है icon अभी भी rect से अधिक तैयार किया जा रहा है:

for (int i=0; i<levelsList.size(); i++) { 
    rect = new Sprite(i*(width+padding), 
         0, 
         width, 
         height, 
         levelSelectorSquareRed, 
         this.getVertexBufferObjectManager()); 
    icon = new Sprite((rect.getWidth()-innerWidth)/2f, 
         (rect.getHeight()-innerHeight)/2f, 
         innerWidth, 
         innerHeight, 
         levelIcons.get(i), 
         this.getVertexBufferObjectManager()); 
    rect.setZIndex(1); 
    icon.setZIndex(0); 
    rect.attachChild(icon); 
    rect.sortChildren(); 
    levelSquares.attachChild(rect); 
} 

levelSquares.setPosition(0, (CAMERA_HEIGHT-height)/2f); 
levelSquares.sortChildren(); 
levelSelectorScene.attachChild(levelSquares); 
levelSelectorScene.sortChildren(); 

तार्किक रूप से, इस overkill होना चाहिए और यह काम कर रहा है, लेकिन यह मैं कुछ भी नहीं/ लापता कर रहा हूँ है?

धन्यवाद

+0

मैंने पढ़ा कि जब आप बच्चे को संलग्न करते हैं, तो यह बच्चे के ZIndex को शून्य पर बदल देता है। क्या आपने सेटिंग से पहले अटैच करने का प्रयास किया है? मुझे इसके लिए सत्यापन नहीं मिल रहा है, इसलिए ... – Geobits

+0

हां, लेकिन दुख की बात है, यह भी काम नहीं करता है। मैंने इसे दोनों इकाईओं को एक इकाई में संलग्न करके हल किया है, और फिर उन्हें इकाई में क्रमबद्ध किया है। – LoneDuck

+0

हां, मैंने देखा कि मैंने टिप्पणी के ठीक बाद देखा। मुझे लगता है कि आप बच्चे/माता-पिता के रिश्ते को रखना चाहते थे, इसलिए लगा कि यह वैसे भी कोशिश करने लायक हो सकता है। मैं खुश हूं कि आपका यह चलने लगा। – Geobits

उत्तर

17

वहाँ कुछ SO के बारे में जादुई है। मैं किसी समस्या पर कड़ी मेहनत कर सकता हूं, अंततः हार मानूंगा और इस साइट पर एक प्रश्न पूछूंगा। कुछ ही मिनटों में समस्या आसानी से हल हो जाती है।

समाधान:

सं AndEngine GLES2 में Children उनके parents के पीछे तैयार नहीं किया जा सकता है। परंतु! child अभिभावक स्प्राइट को स्प्राइट करने के बजाय, आप दोनों को एक इकाई में संलग्न कर सकते हैं, उन्हें जेड इंडेक्स दे सकते हैं और फिर इकाई को सॉर्ट कर सकते हैं।

levelSquares.attachChild(rect); 
levelSquares.attachChild(icon); 
rect.setZIndex(1); 
icon.setZIndex(0); 
levelSquares.sortChildren(); 
+3

मैं जादू की बात के बारे में सहमत हूं ...... मुझे लगता है कि इसे इस तथ्य के साथ करना है कि एक प्रश्न पूछने के लिए आपको अपनी समस्या की स्पष्ट स्थिति स्पष्ट करने की आवश्यकता है और इसे हल करने का प्रयास करने के लिए आपने क्या किया है। कभी-कभी सोच के वैकल्पिक रूपों को ट्रिगर करने में मदद मिलती है। खेल के साथ शुभकामनाएँ! –

+0

धन्यवाद। समाधान निकालें – JohnRaja

+0

यह सच नहीं है! शून्य के लिए z-index सेट करें (f.e. -1) इसे अपने माता-पिता के पीछे खींचें! setZIndex (-1); और parent.sortChildren() को कॉल करना न भूलें; – sjkm

5

आप AndEngine GLES2 उपयोग कर रहे हैं यह बहुत आसान है: बच्चे को संलग्न करने के बाद, बस एक नकारात्मक मूल्य के लिए अपनी z- सूचकांक निर्धारित किया है।

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