您好我正在开发一款iPhone游戏,自上而下的策略角色扮演游戏(有点像Fire Emblem),我设置了我的平铺地图,并在屏幕上设置并绘制了一些角色和敌人并四处走动。我的问题只是为了帮助我理解如何初始化我的角色。我的角色init很简单,它只是加载动画并设置统计数据:
// Hero Class
-(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祝你有美好的一天!
答案 0 :(得分: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。