2012-03-04 92 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