2012-03-04 93 views
0

您好我目前正在一個iPhone遊戲,自上而下的策略RPG(有點像火徽章),我有我的瓷磚地圖設置,遊戲層和一些角色和敵人在屏幕上設置和繪製並移動。我的問題實際上只是爲了讓我能夠簡單地初始化我的角色。我的性格INIT很簡單,它只是加載動畫,並設置統計這樣:Cocos2D調用一個對象初始化從一個場景層初始化

//英雄級

-(id)init 
{ 
    if(self = [super init]) 
    { 
     characterClass = kHeroClass; 

     [self initAnimations]; 

     [self declarePlayer:Hero withLevel:1 withStrength:15 withDefence:14 withMindpower:15 withSpeed:26 withAgility:26 withLuck:12 withEndurance:10 withIntelligence:15 withElement:kFire withStatus:kStatusNormal]; 
    } 

    return self; 
} 

,並因此在遊戲場景中,我能不能像:

(在h文件)

PlayerCharacter *mainChar; 
@property(retain)PlayerCharacter *mainChar; 

(在m文件)

-(id) init 
{ 
    if((self=[super init])) 
    { 
     //the usual stuff 
     mainChar = [MainCharacter init]; 

     return self; 

    } 
} 

不過,我在網上看到和使用教程

MainCharacter *mainChar = [MainCharacter alloc]; 

人會是這樣一樣

mainChar = [MainCharacter init]; 

如果不是會有人幫助闡明要使用的語法。非常感謝:D祝您有美好的一天!

回答

1

我認爲你應該考慮通過一些入門教程快速閱讀。這一個是真棒,將讓你使用的語法和Objective-C的語義:

http://cocoadevcentral.com/d/learn_objectivec/

alloc將分配內存的對象和init將設置的東西,像一個普通的構造函數。您還將看到initWith...風格的功能,這也可以像這樣使用:

MyObjectClass *instance = [[MyObjectClass alloc] init]; 

這就需要有人在dealloc方法創建的同一個類被釋放。

至於設置的對象,最好不要使用很長的方法名declarePlayer:Hero withLevel...而是:一旦你熟悉

Player *player = [[Player alloc] init]; 
player.health = 10; 
player.armor = 20; 
... 

設置對象,然後改變性質以Objective-C作爲一種語言,粘合cocos2d和其他代碼將會容易得多。爲此,您可以訪問programming guide並在網絡上找到如www.learn-cocos2d.com的教程。

+0

謝謝你的幫助,我在設置統計數據的方法很長,因爲我目前有19名玩家控制角色,大約50-60個敵人,每個敵人有8-10個統計類型(加上裝備和技能等) )哈哈!但是,我想我只是要建立一個統計計算器方法,這樣我只需要在每個字符創建時聲明最少的信息。非常感謝那個頁面,它幫助我們澄清了一些事情。 – 2012-03-04 13:22:32

+0

很高興它有幫助,在我的項目中,我有一個基類,所有對象從中延伸,這應該是有用的。 – 2012-03-04 13:25:12

+0

我也是,GameObject - > GameCharacter - > PlayerCharacter - > diffHeroCharacters也GameCharacter - > EnemyCharacter - > diffEnemyCharacter哈哈,但是,感謝很多dood我現在可以繼續:D哈哈 – 2012-03-04 13:26:37