मैं इस तरह के विन्यास के साथ एक CCSpriteBatchNode
है:सीसीएसप्रिट बैच नोड: क्या चाइल्ड चाइल्ड ड्राइंग प्रदर्शन लाभ प्राप्त करता है?
CCSpriteBatchNode
ChildA1
ChildB1
ChildB2
....
ChildB999
ChildA2
ChildA3
...
कहाँ सभी बच्चों (ChildA1, ChildB1, ChildA2 ...) CCSprite
वस्तुओं रहे हैं।
[CCSprite spriteWithSpriteFrameName:@"FileName.png"];
ChildA1
इस तरह बनाई गई है: CCSpriteBatchNode
और सभी बच्चों लेकिन ChildA1
के माध्यम से बनाई गई है
// Create Parent Sprite
CCSprite* childA1 = [[CCSprite alloc] init];
childA1.contentSize = CGSizeMake(37.5,37.5);
childA1.anchorPoint = ccp(0,0);
[batchNode addChild:childA1 z:0 tag:1];
// Add Child Sprites
[childA1 addChild:childB1 z:0 tag:1];
[childA1 addChild:childB2 z:0 tag:1];
[childA1 addChild:childB3 z:0 tag:1];
// Continue adding childB4-childB999
नोट: यह ठीक renders, और मैं उत्पादन मैं उम्मीद है, जहां childB1
के देख स्थिति childA1
से संबंधित है, और childA1
childB1
चलती है।
मेरा प्रश्न यह है: क्या मुझे childB1
- childB999
प्रत्येक ड्राइंग में प्रदर्शन लाभ दिखाई देगा? जो मैं समझता हूं, CCSpriteBatchNode
अपने सभी बच्चे CCSprites
को एक साथ खींचकर CCSpriteBatchNode
के भीतर सभी बच्चों के चित्र को अनुकूलित करता है। क्या यह उन CCSprites
के बच्चों पर भी लागू होता है?
जो लोग चाहते हैं के लिए पता करने के लिए कारण है कि मैं यह कर रहा हूँ: कई परतें इस खेल के भीतर कर रहे हैं और एक CCSpriteBatchNode
के भीतर एक CCSprite
के अंदर CCSprites
समूहीकरण मुझे ही नहीं की मूल जोड़ तोड़ द्वारा CCSprites
के एक समूह में हेरफेर करने की अनुमति देता है sprites का समूह।
AFAIK, हाँ। यदि आप कोकोस 2.0 या उच्चतर का उपयोग कर रहे हैं, तो ड्रॉ आंकड़े की संख्या की जांच करें, कुछ बच्चों को जोड़ें, इसे बढ़ाना नहीं चाहिए: यानी बैच नोड प्रति बनावट में एक एकल ड्रॉ कॉल का उपभोग करता है (जैसा कि 'प्रति स्प्राइट जोड़ा गया' के रूप में विरोध किया जाता है)। पता नहीं है कि क्या आप एआरसीइंग कर रहे हैं, लेकिन यदि आप नहीं हैं तो आप संभवतः बच्चे ए 1 को लिखे हुए हैं (कि कन्स्ट्रक्टर एक ऑटोरेलेज्ड ऑब्जेक्ट नहीं लौटाता है)। – YvesLeBorg
मैं YvesLeBrog से सहमत हूं .. यदि आप कोकोस 2 डी के लिए बनावट मेमोरी के बारे में बात करते हैं, तो इसकी प्रति छवि या बनावट लोड होती है। एक बार जब बनावट को स्मृति में लोड किया जाता है, न तो यह स्मृति को ले जाता है और न ही इसे फिर से लोड करने का समय होता है जिसके परिणामस्वरूप गेम के प्रदर्शन में सुधार होता है। आपके द्वारा उपयोग किए जाने वाले मेमोरी के बारे में, मुझे नहीं लगता कि यह आदर्श तरीका है क्योंकि सीसीएसप्रेट उदाहरण अपने वर्ग में स्वतः ही हैं। तो हमें उनकी स्मृति खपत के बारे में चिंता करने की ज़रूरत नहीं है। –