2011-05-29 24 views
6

मैं अपने CCSprite आधारित Player वर्ग खिलाड़ी उदाहरण में और बाहर fading शुरू करने के लिए के लिए एक विधि बनाने के लिए जब तक stopAllActions.दोहराने के लिए/बाहर कार्रवाई में फीका Cocos2d हमेशा के लिए

बुला मेरी Player वर्ग मैं में बंद कर दिया द्वारा कोशिश कर रहा हूँ :

- (void)pulse 
{ 
    [self setOpacity:1.0]; 
    CCAction *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:0.5]; 
    CCAction *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:1.0]; 

    CCSequence *pulseSequence = [CCSequence actions: 
           fadeIn, // I get a warning about incompatible pointer types... 
           fadeOut, 
           nil]; 
    [self runAction:pulseSequence]; 
} 

यह काम नहीं करता है और हमेशा के लिए दोहराना हिस्सा नहीं संबोधित करता है। मुझे पता है कि मुझे शायद CCRepeatForever का उपयोग करना चाहिए, लेकिन मैं इसे सही ढंग से कार्यान्वित करने के तरीके को नहीं देख रहा हूं।

धन्यवाद!

उत्तर

23

मैं इस से नहीं चला है, लेकिन मैं दूसरों के बारे में सोच की तरह कुछ के साथ सफल रहा है:

- (void)pulse 
{ 
    [self setOpacity:1.0]; 
    CCFadeTo *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:127]; 
    CCFadeTo *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:255]; 

    CCSequence *pulseSequence = [CCSequence actionOne:fadeIn two:fadeOut]; 
    CCRepeatForever *repeat = [CCRepeatForever actionWithAction:pulseSequence]; 
    [self runAction:repeat]; 
} 
+0

मैं अभी भी दोनों फीका कार्यों के लिए असंगत सूचक त्रुटियों को प्राप्त कर रहा हूं। '~/Player.m: चेतावनी: अर्थपूर्ण समस्या: 'CCFiniteTimeAction *' ' – Steve

+0

के पैरामीटर के लिए 'CCAction *' भेजने वाले असंगत सूचक प्रकार, हालांकि अगर मैं 'CCActionTimeAction' में 'CCAction'' बदलता हूं तो त्रुटि दूर हो जाती है और यह काम करता है। .. वह क्यों होगा? – Steve

+0

अब मैं समझता हूं, आपने सीसीएक्शन को टाइप किया था जब आपको यह नहीं करना था। CCFadeTo को CCFiniteTimeAction प्राप्त होता है। यह सभी सीसीएसक्वेंस को जानने की जरूरत है। मैंने तदनुसार अपना जवाब संपादित किया। – Steinbitglis

-1

मैं एक ही समस्या थी और यह मेरे लिए एक बहुत अधिक समय लगा ले लिया उसका जानने के लिए।

जब आप CCSequences बनाते हैं तो मुझे पता चला कि आपको CCAction की प्रतिलिपि बनाना है।

आपके मामले में।

CCAction *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:0.5]; 
CCAction *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:1.0]; 

CCSequence *pulseSequence = [CCSequence actions: 
          [fadeIn copy], 
          [fadeOut copy], 
          nil]; 

आशा मैं मदद की।