나는 objective-C가있어서 매우 새롭고 CCSprite라는 cocos2D 클래스를 확장하는 'factory'스타일 클래스를 구현하려고합니다.초급 목표 -C : 클래스 확장?
생성 된 스프라이트를 나중에 호출하고 조작 할 수 있도록 고유 ID로 스프라이트를 만들고 발행하는 CCSprite를 확장하는 클래스 Monster가 있어야합니다. 나는 CCSprite를 확장하여 instance_id 속성과 static global_id 변수를 추가한다.
나는 CCSprite가 가지고있는 다른 모든 함수들과 함께 spriteWithImageNamed와 같은 모든 CCSprite 생성자를 사용할 수 있기를 원한다. 문제는 내 instance_id가 적절하게 할당/증가되지 않는다는 것이다. (항상 0이다. 이 문제를 해결하기 위해 어디서부터 시작해야할지 정말로 압니다.
Monster.h :
#import "CCSprite.h"
@interface Monster : CCSprite
@property (nonatomic, readonly) int instance_id;
@end
Monster.m : 때마다 호출 초기화 함수가 생성자라고
#import "Monster.h"
static int global_id = 0;
@implementation Monster:CCSprite
@synthesize instance_id;
-(id) init{
self = [super init];
if(self){
instance_id = global_id;
global_id++;
}
return self;
}
@end
가 여기
내가 가진 무엇인가? (예 : spriteWithImageNamed)?
부모 클래스의 함수를 호출 할 때 확장 속성과 변수가 적용되는지 어떻게 확인합니까?
참고 불필요한 @synthesize입니다 , Xcode는 속성과 같은 이름으로 당신을 위해 자동으로 아이어를 만듭니다. 밑줄이 붙습니다.이 경우 _instance_id – LearnCocos2D