더 많은 연습을 위해 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는 모든 메시지를 표시하지만 스프라이트는 표시하지 않습니다.
가능한 경우 무엇이 잘못되었는지 말씀해주세요. 사전에 감사합니다.
글쎄, 내가 mainPlayer에서 drawPallete를 호출하면, 스프라이트는 메인 레이어에서 작업하고 레이어에 자신을 그려야한다고 생각할 것이다. 아마도 어리석은 생각이었다. 한 클래스의 스프라이트를 메인 레이어에 추가하는 방법을 알려주시겠습니까? – repoguy
직접 또는 다른 것들을 통해 장면을 그려야합니다. 메인 레이어의 init 또는 어떤 방법 으로든 "newPallete"를 생성 한 후에 메인 레이어 [self addChild : newPallete]에 추가하십시오. 또한 메인 레이어를 장면에 추가했는지 확인하십시오. – Kreiri
와우, 왜 내가 현장에 추가 할 필요가 없다고 생각하는지 모르겠다. 이제 모든 것이 작동한다. 고마워. – repoguy