2012-02-12 12 views
8

im मेरी स्प्राइट झपकी बनाने की कोशिश कर हो जाता है, लेकिन यह सिर्फ गायब हो जाता है, मैं गूगल खोज की है, लेकिन मैं नहीं कर सकते का समाधान खोजने, यहाँ क्या im कर:Cocos2d पलक स्प्राइट हो रही है, यह अदृश्य

CCBlink * blinker = [CCBlink actionWithDuration: 0.5 blinks: 1]; 
[player runAction: blinker]; 

इस विधि को तब बुलाया जाता है जब टक्कर लगने पर मेरे दो sprites टकराते हैं, मैं चाहता हूं कि 'खिलाड़ी' कुछ सेकंड के लिए झपकी के लिए स्प्राइट करें। फिलहाल, जब स्प्राइट टकराते हैं, तो 'प्लेयर' स्प्राइट अदृश्य हो जाता है .... धन्यवाद

+0

आपको कोई उत्तर या टिप्पणी स्वीकार करनी चाहिए। – phlebotinum

उत्तर

0

सत्यापित करें कि जब (और कहां) आप 'ऑनकॉलिजन' प्रकार की घटनाओं को संसाधित करते हैं तो आप अपने माता-पिता से स्प्राइट को नहीं हटाते हैं।

+0

हाँ, जब स्प्राइट्स टकराते हैं, कुछ भी नहीं होता है, मैं केवल खिलाड़ी को झपकी देने के लिए स्प्राइट करना चाहता हूं, इसलिए मैंने उपरोक्त कोड को 'if (if (cGRectIntersectsRect (playerRect, rockRect) 0' – sahil

3

सीसीब्लिंक आपके स्प्राइट की दृश्यता को आपके द्वारा दी गई अवधि के भीतर दिए गए समय के साथ और उससे अधिक समय तक टॉगल करके काम करता प्रतीत होता है। आपके द्वारा सेट की गई अवधि के आधार पर, आप कभी-कभी कार्रवाई के अंत में "ऑफ" दृश्यता स्थिति के साथ समाप्त हो जाते हैं (बहुत छोटी गाड़ी, मेरे पास पहले भी था), जो काफी वांछित नहीं है।

दो सुझाव: (1) ब्लिंक की संख्या के साथ खेलें। (2) हमेशा स्पिइट को ब्लिंक के अंत में दिखाई देने के लिए मजबूर करें:

अपनी ब्लिंक कार्रवाई के अंत में [CCShow कार्रवाई] जोड़ें। आप दोनों कार्यों को एक CCSequence में स्ट्रिंग कर सकते हैं।

+0

+1 में काम किया है। मुझे जरूरी था। (मजाकिया कि मैं इस दो हफ्ते पहले आया था जब मैंने ओपी को जवाब स्वीकार करने का सुझाव दिया था, और अब मैं इसका इस्तेमाल करता हूं) – phlebotinum

0

ब्लिंक कार्रवाई छोटी है। मैं हमेशा यह सुनिश्चित करने के लिए निम्न का उपयोग करता हूं कि ऑब्जेक्ट के अंत में ऑब्जेक्ट दिखाई देता है:

Sequence* action = Sequence::create(Blink::create(BLINK_DURATION, BLINK_TIMES), Show::create(), NULL); 
संबंधित मुद्दे