Cocos2d iphone cocos2d-从CCSprite派生的addchild类
我是cocos2d iphone的初学者 我对将孩子添加到游戏场景有问题 我制作了一个从CCSprite派生的简单类,并尝试显示这个类 但它不起作用,我不知道是什么问题 这是我的课程代码:Cocos2d iphone cocos2d-从CCSprite派生的addchild类,cocos2d-iphone,Cocos2d Iphone,我是cocos2d iphone的初学者 我对将孩子添加到游戏场景有问题 我制作了一个从CCSprite派生的简单类,并尝试显示这个类 但它不起作用,我不知道是什么问题 这是我的课程代码: //myClass.h #import "cocos2d.h" @interface myClass:CCSprite{ } @end //myClass.m #import "myClass.h" @implementation myClass -(id) init{ if( self = [su
//myClass.h
#import "cocos2d.h"
@interface myClass:CCSprite{
}
@end
//myClass.m
#import "myClass.h"
@implementation myClass
-(id) init{
if( self = [super initWithFile:@"title.png"] ){
self.position = ccp(240, 240);
}
return self;
}
@end
这是游戏场景的一部分:
//HelloWorldLayer.m
...
// this worked well.
// myClass* temp = [CCSprite spriteWithFile:@"title.png"];
// temp.position = ccp(240, 240);
// [self addChild:temp];
// but this won't work.
myClass* temp = [[myClass alloc] init];
[self addChild:temp];
...
我应该如何解决这个问题?如果检查代码,initWithFile会调用调用init的initWithTexture,因此您处于循环中,这就是问题的原因。尝试创建另一个构造函数或类方法来创建精灵并设置位置 比如说
//myClass.h
#import "cocos2d.h"
@interface myClass:CCSprite{
}
-(id)initMy;
+(id)createMySprite;
@end
//myClass.m
#import "myClass.h"
@implementation myClass
-(id) initMy{
if( self = [super initWithFile:@"title.png"] ){
self.position = ccp(240, 240);
}
return self;
}
+(id)createMySprite {
return [[[self alloc] initMy] autorelease];
}
@end
如果检查代码,initWithFile将调用调用init的initWithTexture,因此您处于循环中,这就是问题的原因。尝试创建另一个构造函数或类方法来创建精灵并设置位置 比如说
//myClass.h
#import "cocos2d.h"
@interface myClass:CCSprite{
}
-(id)initMy;
+(id)createMySprite;
@end
//myClass.m
#import "myClass.h"
@implementation myClass
-(id) initMy{
if( self = [super initWithFile:@"title.png"] ){
self.position = ccp(240, 240);
}
return self;
}
+(id)createMySprite {
return [[[self alloc] initMy] autorelease];
}
@end
上帝啊!你把我从地狱里救了出来!非常感谢你!上帝啊!你把我从地狱里救了出来!非常感谢你!