无法将CCNode添加到Scene

时间:2014-02-17 21:04:51

标签: objective-c cocos2d-iphone ccnode

我有IntroScene,我想添加一个节点,但它似乎不起作用。以下是我尝试过的两种不同方式,并且BOTH失败了。

第一种方式,失败:

在hearts2.h

#import <Foundation/Foundation.h>
#import "cocos2d.h"

@interface Hearts2 : CCNode {

}

@end

in hearts2.m

#import "Hearts2.h"


@implementation Hearts2

@end

in IntroLayer.m

- (id)init
{
// Apple recommend assigning self with supers return value
self = [super init];
if (!self) return(nil);

heart2 *heart;
[self addChild:heart z:2];

// done
return self;
}

我没想到要工作(实际上我是绝望的,并且尝试这种方式作为第二种方式只是为了看它是否会起作用)。我试图做的实际第一次尝试就是这样,它也失败了:

心中的

#import <Foundation/Foundation.h>
#import "cocos2d.h"

@interface Hearts1 : CCNode

+ (Hearts1 *)node;
- (id)init;
-(void)selfAnimate;



@end
心中的

#import "Hearts1.h"

@implementation Hearts1 {
}

+ (Hearts1 *)node
{
    return [[self alloc] init];
}

- (id)init
{
    self = [super init];
    if (!self) return(nil);


    return self;

}
- (void)dealloc
{
}

- (void)onEnter
{
    [super onEnter];

}

- (void)onExit
{
    // always call super onExit last
    [super onExit];
}



- (void)selfAnimate
{
}
@end

in IntroLayer.m

- (id)init
{
// Apple recommend assigning self with supers return value
self = [super init];
if (!self) return(nil);

heart1 *heart;
[self addChild:heart z:2];

// done
return self;
}

拜托,如果有人能帮助我解决这个问题,我会做任何事情。非常感谢大家。我总是得到SigABRT所以我不知道出了什么问题。我确定我只是愚蠢而且不知道如何编码和遗漏一些简单的东西。

1 个答案:

答案 0 :(得分:0)

heart2 *heart;

您将类命名为Hearts2,因此请使用完全相同的名称,包括大写。

其次你创建了一个变量,但这将是零。如果你没有使用ARC(你应该这样做),这将创建一个未初始化的对象。

这将创建Hearts2的实例,将其分配给本地var heart并将其添加为子项:

Hearts2 *heart = [Hearts2 node];
[self addChild:heart z:2];