2011-04-13 53 views
6

我試圖在cocos2d(版本0.99.5)中初始化一個場景並且想要傳入一個參數。在這種情況下,參數是與級別編號對應的int值。場景類本身是CCLayer一個子類,而我與節點類的方法對其進行初始化:使用參數在cocos2d中初始化場景

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

我有一個自定義的init方法,它採用可變「水平」,具體如下:

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

只是想知道:我在創建我自己的initWithX方法的基礎上創建自己的方法,以及如何使用級別整數初始化場景?

+0

建議吉姆,如果它是一個子類CCLayer的,然後你的類名應該是作爲GameScene的GameLayer看起來像是CCScene的子類 – 2011-04-13 04:50:28

+0

這是一個很好的建議。謝謝! – 2011-04-13 05:11:47

回答

19

此方法添加到您的子類

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

,取而代之的

GameScene *scene = [GameScene node]; 

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

這是一件美麗的事情。我意識到這是Objective-C中非常基本的東西。仍然不確定發生了什麼,但這個答案對我來說是一個很好的麪包屑。謝謝,因德。 – 2011-04-13 05:17:29

+0

謝謝吉姆。 :)... – 2011-04-13 06:58:23

+0

@JimMcGaw,Inder正在使用預期的「節點」Cocos2d約定添加一個類方法,但在指定的默認初始值設定項之後進行了圖案化。爲你的下一個「麪包屑」...;) – 2013-11-04 01:15:10