2014-11-13 3 views
4

내가 SpriteKit에 비교적 새로운 그리고 난 프로젝트를 만들 때 6.엑스 코드 6 스프라이트 키트 - 구현 방법

원래 엑스 코드로 업그레이드 한 이후 몇 가지 문제가 발생했다 "initwithsize"나는 "initWithSize"에 어떤 방법을 입력 .

-(void)didMoveToView:(SKView *)view {} 

initwithsize 적용하려고, 그냥 작동하지 않거나 : 더 이상 기본이 될 것 같다 대신으로 대체되는 것을

-(id)initWithSize:(CGSize)size {  
if (self = [super initWithSize:size]) { 


} 
return self; 
} 

엑스 코드 (6)에서 프로젝트를 시작, 내부에 넣은 스프라이트 노드를로드하지 않습니다. 새 파일을 만들 때도 더 이상 .m 및 .h 파일이 제공되지 않습니다. 다른 옵션을 선택했습니다. 어느 것도 .h/.m이 아닙니다.

그래서 1) 내가 이전에 initwithsize로 한 일을 어떻게 계속 코딩합니까? 2) 새 파일을 만드는 것이 어떻게됩니까? .m/.h 클래스를 더 이상 만들 수 없습니까?

이러한 정보는 크게 감사하겠습니다.

답변

3

장면이 이전 Xcode 버전과 다른 방식으로 생성 되었기 때문입니다. 이제 장면이 initWithSize :를 사용하여 뷰 컨트롤러에서 수동으로 생성되는 대신 씬은 unarchiveFromFile : 템플릿 (아마도 GameViewController.m)에있는 메소드를 사용하여 아카이브되지 않습니다. 이 때문에 initWithSize :는 호출되지 않습니다. 대신 initWithCoder :를 사용해야합니다.

- (instancetype)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 

    if (self) { 
     // stuff 
    } 

    return self; 
} 

그리고 지금까지 귀하의 질문의 두 번째 부분은 간다, 그게 엑스 코드 6에 얼마나 단지 당신은 여전히 ​​새 파일을 생성 할 수있어, 단지 등 카테고리/같은 것들에 대한 템플릿에 대한 옵션은 더 이상 존재하지 않습니다 .

+0

안녕 친구, 이렇게 빠른 응답을 가져 주셔서 감사합니다. 이것은 꽤 많이 내게 던져 버렸다. 방금 spritekit을 시작했고 물건에 익숙해지기 시작했습니다. 그렇다면 이것은 발생합니다 ... 그래서 initwithsize 완전히 포기되었습니다. CGSize 메서드가있는 경우이 메서드는 어떻게 호출됩니까? 다시 한번 감사 드리며, 대단히 감사합니다. – MegaTron

+0

@MegaTron 버려진 것은 아니며 여전히 존재합니다. 템플릿이 다른 방식으로 구성 되었기 때문에 귀하의 경우에는 더 이상 기본적으로 호출되지 않습니다. 새 템플릿의보기 컨트롤러 파일과 이전 프로젝트 중 하나에서 차이점을 볼 수 있습니다. 이 경우, 중요한 것은 장면이 'GameScene * scene = [[GameScene alloc] initWithSize : skView.bounds.size];와 같은 것으로 초기화되고, 이제는 제가 답변에서 언급 한 방법이 장면을 .sks 파일에서 가져 와서 그런 식으로 만듭니다. –

+0

다시 한 번 고마워했습니다. 그것은 sks 파일에서 unarchiving 것 같습니다. cgsize 메서드를 추가하려고 할 때마다 "크기"가 인식되지 않습니다. 어떻게해야합니까? 둘째, 새로운 장면을 위해 만든 모든 새 클래스에 대해 관련 .sks 파일이 필요합니까? 다시 한번 감사 드리며, 시간을 진심으로 감사드립니다. – MegaTron