2011-04-13 14 views
6

के साथ cocos2d में दृश्य आरंभ करें मैं cocos2d (संस्करण 0.9 9.5) में एक दृश्य प्रारंभ करने की कोशिश कर रहा हूं और पैरामीटर में पास करना चाहता हूं। इस मामले में, पैरामीटर स्तर संख्या से संबंधित एक int मान है। दृश्य वर्ग ही CCLayer का एक उपवर्ग है, और मैं नोड वर्ग विधि के साथ यह आरंभ कर रहा हूँ:पैरामीटर

GameScene *scene = [GameScene node]; //GameScene subclass of CCLayer 

इस प्रकार मैं, एक कस्टम init विधि है कि चर "स्तर" लगता है:

- (id) initWithGameLevel:(int)level { 
    if ((self = [super init])){ 
     // etc 
    } 
} 

बस सोच रहा है: क्या मैं अपनी खुद की initWithX विधि बनाने में अपने दृष्टिकोण में आधार से दूर हूं, और मैं दृश्य पूर्णांक के साथ दृश्य कैसे प्रारंभ करूं?

+0

सुझाव जिम अपने उपवर्ग के लिए इस विधि जोड़ें अगर यह CCLayer की एक उप वर्ग है तो अपने वर्ग के नाम होना चाहिए GameLeer GameScene के रूप में CCScene –

+0

के उप-वर्ग के रूप में दिखता है यह एक अच्छा सुझाव है। धन्यवाद! –

उत्तर

19

+(id)nodeWithGameLevel:(int)level{ 
    return [[[self alloc] initWithGameLevel:level] autorelease]; 
} 

और बजाय

GameScene *scene = [GameScene node]; 

लिखने

GameScene *scene = [GameScene nodeWithGameLevel:levelNumber]; 
+0

यह सुंदरता की बात है। मुझे एहसास है कि यह उद्देश्य-सी में कुछ मूलभूत है। अभी भी यह सुनिश्चित नहीं है कि क्या हो रहा है, लेकिन यह जवाब मेरे लिए अनुसरण करने के लिए एक अच्छा ब्रेडक्रंब है। धन्यवाद, इंदर। –

+0

धन्यवाद जिम। :) ... –

+0

@JimMcGaw, इंडर अपेक्षित "नोड" कोकोस 2 डी सम्मेलन का उपयोग करके कक्षा विधि जोड़ रहा है, लेकिन नामित और डिफ़ॉल्ट प्रारंभकर्ताओं के बाद पैटर्नबद्ध है। आपके अगले "ब्रेडक्रंब" के लिए ...;) –