2012-05-05 1 views
0

더 많은 연습을 위해 cocos2d를 사용하는 일부 샘플 게임에서 작업 중이며 클래스에 문제가 있습니다.스프라이트를 그리기위한 별도의 클래스, 클래스가 작동하지 않습니다

someShapes.h 내가 할 주요 계층에서

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

@interface palleteOfShapes : CCLayer 
{ 
    NSMutableArray *shapesArray; 
} 
@property (nonatomic,retain) NSMutableArray *shapesArray; 
-(void)drawPallete; 
@end 

someShapes.m

#import "palleteOfShapes.h" 

@implementation palleteOfShapes 
@synthesize shapesArray; 
-(void)drawPallete 

{ 
    shapesArray = [NSMutableArray arrayWithObjects:@"Icon.png",@"A.png",@"questionMark.png",nil]; 
    for (int i=0; i<shapesArray.count; i++) { 
     NSString *imagestring = [shapesArray objectAtIndex:i]; 
     CCSprite *sprite = [CCSprite spriteWithFile:imagestring]; 
     NSLog(@"i value: %i",i); 
     sprite.position=ccp(100*i,350); 
     NSLog(@"image added:%@",imagestring); 
     [self addChild:sprite]; 
     NSLog(@"count: %d",[shapesArray count]); 
    }   
    NSLog(@"pallete was completed"); 
    [shapesArray removeLastObject]; 
    NSLog(@"count:%d",[shapesArray count]); 

} 
@end 

:

palleteOfShapes *newPallete = [[palleteOfShapes alloc]init]; 
[newPallete drawPallete]; 

내가이 스프라이트가 나타날 것으로 예상 여기 내 예제 내 주요 계층,하지만 그들은하지 않습니다. NSLog는 모든 메시지를 표시하지만 스프라이트는 표시하지 않습니다.

가능한 경우 무엇이 잘못되었는지 말씀해주세요. 사전에 감사합니다.

답변

0

"palleteOfShapes"레이어에 스프라이트를 추가했지만 메인 레이어에 스프라이트를 추가하거나 "palleteOfShapes"를 추가하지 마십시오.

+0

글쎄, 내가 mainPlayer에서 drawPallete를 호출하면, 스프라이트는 메인 레이어에서 작업하고 레이어에 자신을 그려야한다고 생각할 것이다. 아마도 어리석은 생각이었다. 한 클래스의 스프라이트를 메인 레이어에 추가하는 방법을 알려주시겠습니까? – repoguy

+0

직접 또는 다른 것들을 통해 장면을 그려야합니다. 메인 레이어의 init 또는 어떤 방법 으로든 "newPallete"를 생성 한 후에 메인 레이어 [self addChild : newPallete]에 추가하십시오. 또한 메인 레이어를 장면에 추가했는지 확인하십시오. – Kreiri

+0

와우, 왜 내가 현장에 추가 할 필요가 없다고 생각하는지 모르겠다. 이제 모든 것이 작동한다. 고마워. – repoguy

0

-(id) init 메서드를 구현하고 거기에서 약간의 초기화를 시도하십시오.

+0

기본 레이어에 init 메소드가 구현되었습니다. 내 팔레트 레이어에 대해 동일한 작업을 수행하면 주 레이어가 아닌 별도 레이어에 모든 항목이 그려집니다. 나는 생각한다. – repoguy