2014-02-17 2 views
0

IntroScene이 있는데, 노드를 추가하고 싶지만 작동하지 않습니다. 여기에 내가 시도한 두 가지 다른 방법이 있으며 모두 실패했습니다.CCNode를 Scene에 추가 할 수 없습니다.

첫 번째 방법은, 실패

hearts2.h hearts2.m에서

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

@interface Hearts2 : CCNode { 

} 

@end 

#import "Hearts2.h" 


@implementation Hearts2 

@end 

내가하지 않았다

- (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; 
} 
IntroLayer.m

에 그것이 일하기를 기대한다 (실제로 나는 필사적이었다 e와 그것이 작동 할 것인지를보기 위해 두 번째 방법으로 그렇게 해 보았습니다). 내가하려고 실제 첫 번째 시도는이 있었고, 또한 실패 :

- (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; 
} 

#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 

IntroLayer.m

에서 hearts1.h hearts1.m에서

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

@interface Hearts1 : CCNode 

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



@end 

제발, 누군가가이 모든 것을 고맙게 여기는 데 도움이 될 수 있다면 제발 할 것입니다. 나는 항상 SigABRT를 얻고 무엇이 잘못 될지 전혀 모른다. 나는 내가 어리 석다는 것을 확신하고 코딩하는 방법과 간단한 것을 놓치는 방법을 모른다.

답변

0
heart2 *heart; 

클래스 이름을 Hearts2으로 했으므로 대문자를 포함하여 정확히 동일한 이름을 사용하십시오.

두 번째로 변수를 만들었지 만 이는 0이됩니다. ARC를 사용하지 않으면 (필요한) ARC가 초기화되지 않은 객체를 생성합니다.

이, Hearts2의 인스턴스를 생성 로컬 VAR heart에 할당하고 자식으로 추가됩니다 우수한

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

을! 나는'Hearts2 * heart = [Hearts2 node];를 추가했다. –

관련 문제