2013-11-09 5 views
5

एक क्यूईमिटर नोड का उपयोग करते हुए अधिकतम कणों को एक संख्या पर सेट करते समय प्रलेखन कहता है कि यह कण उत्पन्न करना बंद कर देगा। मेरा सवाल यह है कि क्या यह बताने का कोई तरीका है कि यह हुआ है? जब मैं अपना काम करता हूं तो मैं दृश्य से कण उत्सर्जक को हटाना चाहता हूं।मैं कैसे बता सकता हूं कि एक SKEmitterNode अपने अधिकतम कणों तक पहुंच गया है?

उत्तर

7

जब आप एमिटर किया जाता है तो आप गणना कर सकते हैं।

उदाहरण के लिए यदि numParticlesToEmit 1000 पर सेट किया गया है और particleBirthRate 100 है, तो कण 10 सेकंड के बाद नए कण उत्सर्जित किया जाएगा। समय पर कण स्क्रीन पर बने रहने के लिए आपको particleLifeTimeRange के आधे हिस्से के साथ particleLifeTime जोड़ना होगा। उसके बाद, उत्सर्जक न केवल नए कणों को उत्सर्जित करता है बल्कि स्क्रीन से अंतिम और/या सबसे लंबे समय तक रहने वाले उत्सर्जित कण को ​​हटा दिया जाएगा।

CGFloat seconds = em.numParticlesToEmit/em.particleBirthRate + 
        em.particleLifetime + em.particleLifetimeRange/2; 

फिर आप प्रतीक्षा समय के साथ एक चयनकर्ता प्रदर्शन या दिए गए देरी के साथ एक कार्रवाई चलाने जब कण emitter किया जाता है अधिसूचित किया जाना कर सकते हैं:

मान लिया जाये कि em अपने emitter है।

+0

बहुत बेहतर समाधान, मैंने पूरी तरह से प्रश्न को गलत तरीके से पढ़ा और कुछ कारणों से यह सोच रहा था कि numParticlesToEmit अज्ञात था। गणित अद्भुत है। – prototypical

0

मैं सक्रिय कण गिनती की जांच करने का कोई तरीका नहीं ढूंढ पा रहा हूं। मैं सोच रहा था कि एसकेएनओड से प्राप्त बच्चों की संपत्ति के साथ यह संभव था, लेकिन यह काम नहीं करता है।

गंभीर रूप से कण emitter का प्रदर्शन प्रभावित हो सकता कणों को जटिल कार्यों जोड़ना:

मैं एक SKEmitterNode जो इस blurb है के लिए particleAction संपत्ति देखा। इसके अलावा, क्योंकि कण एक स्पष्ट नोड के रूप में मौजूद नहीं हैं जिसे आप कुशल बना सकते हैं, आप मौजूदा कणों से क्रियाओं को हटा नहीं सकते हैं।

यह संभव है कि आप सक्रिय कणों के बारे में सूचित करने के लिए SKAction प्रदर्शन चयनकर्ता का उपयोग कर सकें। जब वह धारा समाप्त होती है, तो आप मान सकते हैं कि कोई कण शेष नहीं है।

किसी भी माध्यम से एक बहुत ही सुरुचिपूर्ण या आदर्श समाधान नहीं है, और मैं खुद को निश्चित रूप से बेहतर समाधान में रूचि रखूंगा।

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

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