2015-09-23 25 views
15

में SKEmitterNode को रोकने में असमर्थ मैंने कुछ कामकाज की कोशिश की है, लेकिन फिर भी मैं iOS9 पर मौजूदा कणों को रोक नहीं सकता। मैं निम्नलिखित तकनीक का उपयोग कर रहा दृश्य को रोकने के लिए: (जबकि दृश्य रोक दिया गया है क्योंकि update: अभी भी चलाता है) update: विधि निष्पादन को नियंत्रित करने के self.paused = YES; आईओएस 9

  • सेट कस्टम globalPause = YES; चर के साथ

    • ठहराव दृश्य।

    बिंदु यह है कि मैं दृश्य को रोक नहीं पा रहा हूं, बल्कि दृश्य। मैं this की वजह से दृश्य को रोक नहीं पा रहा हूं।

    #import "GameScene.h" 
    
    @interface GameScene() 
    
    @property (nonatomic, strong)SKEmitterNode *emitter; 
    
    @end 
    
    @implementation GameScene 
    
    
    -(void)didMoveToView:(SKView *)view { 
    
    
        [self addChild:[self getSpaceDustEmitter]]; 
    
    } 
    
    //No need for this method though :) 
    
    -(SKEmitterNode*)getSpaceDustEmitter{ 
    
        self.emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:[[NSBundle mainBundle] pathForResource:@"spacedust" ofType:@"sks"]]; 
        self.emitter .name = @"emitter_spacedust"; 
        self.emitter .position = CGPointMake(CGRectGetMidX(self.frame),self.frame.size.height); 
    
    
    
        return self.emitter ; 
    } 
    
    
    @end 
    

    तो, बहुत ही सरल उदाहरण है जिस पर iOS8 और नहीं काम कर रहा iOS9 पर अपेक्षा के अनुरूप काम करता है:

    यहाँ कोड है जो iOS9 पर इस समस्या को पुनः कर सकते हैं। क्या होता है कि अगर सब कुछ दिखता है कि रोका गया है, तो नहीं। मौजूदा कणों को उस बिंदु पर स्थानांतरित करने के बाद, जहां दृश्य होना बंद नहीं किया गया था। इसके अलावा, यह की तरह है कि कणों को उत्पन्न करने भी रखना है, जो ध्यान देने योग्य अंतराल जब रोकना बंद करके यदि ठहराव लंबी थी उत्पादन कर सकते हैं लग रहा है ...

    यहाँ कण संपादक से एक स्क्रीनशॉट है:

    particle editor

    किसी कुछ उचित है स्पष्टीकरण? अब तक मैं स्पष्ट रूप से emitter को थामने की कोशिश की है:

    emitterNode.paused = YES; 
    

    यह काम नहीं किया था, और वास्तव में यह स्वचालित रूप से जब दृश्य में रुका हुआ है (emitter दृश्य में जोड़ा जाता है) किया जाना चाहिए। एक और चीज जिसकी कोशिश की जाती है emitter.particleSpeed = 0; के साथ-साथ emitter.particleSpeedRange = 0; और emitter.particleBirthRate = 0; सेट करना है, लेकिन यह पहले से मौजूद कणों (जो समझ में आता है) पर प्रभाव नहीं डालता है।

    और यह है कि। सुनिश्चित नहीं हैं कि अगर यह एक बग

  • +0

    क्या आपको SKEmitterNode को रोकने के लिए कोई कामकाज मिला है? – WangYudong

    +0

    @WangYudong वास्तव में नहीं ... क्या आप एक ही समस्या का सामना कर रहे हैं? – Whirlwind

    +1

    हां। आईओएस 8 में, सबकुछ ठीक था। और मैंने आपकी पोस्ट में जो कहा, मैंने कोशिश की, और एक ही परिणाम मिला। – WangYudong

    उत्तर

    1

    दृश्य को रोकने के लिए है, लेकिन मैं विचारों से बाहर चलाने कर रहा हूँ ...:

    currentScene.speed = 0 
    currentScene.paused = true 
    

    दृश्य

    currentScene.speed = Variables.gameSpeed 
    currentScene.paused = false 
    

    को फिर से शुरू करने के लिए आप के लिए है कि काम करता है ?

    पीएस: आप किस आईओएस संस्करण पर काम कर रहे हैं? मैंने आईओएस 9 .1 के साथ समस्याओं के बारे में पढ़ा है, जो कि 9.3 में ठीक है, उन उत्सर्जकों के बारे में।