2009-12-23 32 views
25

मैं सिर्फ Cocos2d के दस्तावेज़ों के कुछ पढ़ने समाप्त हो गया है, और जहाँ तक मैं एक परत आप की तरह कुछ करने के लिए करने के लिए एक पृष्ठभूमि छवि को जोड़ने के लिए समझ में:कोकोस 2 डी एक परत में पृष्ठभूमि छवि जोड़ रहा है?

Sprite * bg = [Sprite spriteWithFile:@"Background.png"]; 
[layer addChild:bg z:0]; 

Allthough जहाँ तक मेरी परीक्षण आप चला जाता है बस कर सकते हैं सीधे इस तरह के परिदृश्य में स्प्राइट जोड़ें:

@implementation IntroScene 
- (id) init { 
self = [super init]; 
if (self != nil) { 
    Sprite * bg = [Sprite spriteWithFile:@"Background.png"]; 
    [bg setPosition:ccp(240, 160)]; 
    [self addChild:bg z:0]; 
    [self addChild:[MenuLayer node] z:1]; 
} 
return self; 

}

यह 2 विकल्पों के बीच क्या अंतर है, और क्या एक परत के लिए एक पृष्ठभूमि सेट करने के लिए बेहतर तरीका है ?. किसी भी प्रकार की सहायता सराहनीय होगी।

+0

ध्यान रखें कि स्प्राइट सीसीएसप्रेट बन गया है। हाँ, उस मन को डैनियल भालू। –

उत्तर

25

आपको एक परत रखने की आवश्यकता नहीं है, लेकिन वे आसान हैं। परतों को समूहित करने के तरीके के रूप में परतों के बारे में सोचें (दृष्टिहीन और संगठनात्मक दोनों)। आप अपनी पृष्ठभूमि छवियों को एक परत के रूप में समूहीकृत कर सकते हैं और एक खेल में सभी दुश्मनों को एक और परत के रूप में जोड़ सकते हैं। यह आपको प्रत्येक सेट को अधिक स्वच्छता से निपटने की अनुमति देता है। जैसे आप सभी दुश्मनों को खोजने और उन्हें हटाने के बजाय एक विशिष्ट परत को हटा सकते हैं।

यदि यह फ़ोटोशॉप या ग्राफिक्स संपादन प्रोग्राम में परतों के साथ खेलता है, तो यह मदद करता है। कोकोस 2 डी में परतें समान रूप से काम करती हैं।

एक साधारण दृश्य के लिए, एक परत या किसी दृश्य में पृष्ठभूमि जोड़ने से बहुत अंतर नहीं आएगा। लेकिन इसमें लेयरिंग के लाभों से पहले बहुत समय नहीं लगता है।

+0

धन्यवाद कि यह मेरे लिए इसे साफ़ कर दिया गया है। –

8

परतें ड्राइंग ऑर्डर को नियंत्रित करती हैं (किसी भी इंटर-लेयर जेड ऑर्डरिंग के ऊपर और ऊपर)।

भू-स्पार्क में, उदाहरण के लिए, मेरे पास पृष्ठभूमि परत, एक स्पार्क परत, एक यूआई परत, आदि (सरलीकृत) है। लेकिन यह मुझे यह सुनिश्चित करने की इजाजत देता है कि मेरी यूआई सामग्री हमेशा किसी भी गेम सामान (स्पार्क परत) से ऊपर है और पृष्ठभूमि के ऊपर की सभी चीजें हैं।

यदि आपका गेम केवल योजक प्रतिपादन करता है, तो ड्रा ऑर्डर अधिक मायने रखता नहीं है। :)

- डेविड

4

दृश्य एक ब्लैकबोर्ड है, परत एक पेज है ... खबर पेज पर लिखा है, लेकिन, अगर आप आप बोर्ड पर लिख सकते हैं चाहता हूँ। यदि आप सभी नए मिटा देना चाहते हैं।

0

कोकोस 2 डी में हम किसी भी नोड पर कोई भी नोड जोड़ सकते हैं। लेकिन यह पदानुक्रम के स्तर पर निर्भर करता है।

आप दृश्यों पर परत जोड़ सकते हैं। यदि आप एक ही संपत्ति चाहते हैं या सीसीएससीन पर जो भी परत जोड़ते हैं, तो आप उन्हें सीसीएससीन (जैसे आपके दूसरे मामले में) जोड़ सकते हैं। लेकिन यदि आप प्रत्येक परत पर अलग-अलग फीचर रखना चाहते हैं तो उन्हें CCLayer में जोड़ें।

सीसीलेयर कुछ उद्देश्य के लिए नोड्स/स्प्राइट्स के सेट को समूहबद्ध करने के लिए है। उदाहरण के लिए आप एक परत जोड़ सकते हैं जिसमें गेम को रोकने के बाद विकल्प, या कुछ स्क्रॉलिंग परत (कुछ स्क्रॉलिंग प्लेटफार्म गेम में पसंद) के साथ हमेशा स्क्रीन पर कुछ प्रकार प्रदर्शित करने के लिए एचयूडी परत शामिल है।

अंत में आप सीसीएससीन पर सीसीएनसीन, एक और परत पर एक परत, और यहां तक ​​कि एक सीसीएसप्रेट पर एक सीसीएनोड भी कर सकते हैं। लेकिन cocos2d में ग्राफिक्स संदर्भ में ड्राइंग का क्रम अलग है।

आशा है कि आपको अंतर मिलेगा।

शुभकामनाएं!