2014-07-23 4 views
2

저는 스프라이트 키트 게임을 만들고 있으며, iOS 개발의 초보자입니다. 내 게임에서 1 SKScene을 1 레벨로 사용하고 있습니다. 각 레벨은 이전 레벨에서 어려움이 증가합니다. SKScenes을 여러 개 만들면 난이도를 높이기 위해 사소한 변화를 반복하여 이전 수준의 코드를 다시 사용해야한다는 것을 알게되었습니다. 여러 장면을 만들고 동일한 코드를 반복해서 복사하는 것보다 이렇게하는 것이 더 좋은 방법이 아닙니까? 반복 코드를 재사용 할 수있는 방법이 있습니까? 여러 수준을 만들고 싶다면이 작업이 번거롭고 나쁜 디자인을 반영한 것 같습니다.스프라이트 키트 게임에서 같은 코드로 레벨을 생성합니다.

답변

3

그래서 객체 지향 프로그래밍의 이론이 당신의 경우 특별하게 상속되었습니다. 코드를 계속해서 다시 사용해야 할 때 OOP가 특별히 사용됩니다. 클래스를 상속 한 다음 해당 하위 클래스에서 해당 메서드를 호출하거나 자체 의지에 따라 메서드를 덮어 쓰거나 오버로드 할 수 있습니다.

상속이 이루어지는 방법에 대한 문서를 확인하십시오. 객관적 C에서 유

@interface 
yourclassName : superclassName 

구문으로 클래스를 상속 할 수

+0

즉, 공통 코드로 1 SKScene을 구현 한 다음 나머지 장면에 대해 수퍼 클래스로 만들면이 방법이 효과가 있습니까? 권리? –

+0

네,하지만, 당신은 하위 클래스에서 메서드를 호출해야하고, 원하는 경우 변경 작업을 수행해야합니다. 메서드 자체를 호출하면 –

+0

이 효과적입니다! 고마워요. –

3

어떻게 수준과 같은 SKScene 서브 클래스에 대한. 그런 다음 SKScene을 초기화 할 수 있습니다.

class.h

@interface 
myLevel :SKScene 

-initWithYourDifferentLevelProperties:(NSInteger *)levelNumber; 

class.m이 도움이

@implementation 

-initWithYourDifferentLevelProperties: (NSInteger *)levelNumber { 

numberOfMonsters = levelNumber 

} 

희망.

+0

님이 답을 득점했습니다. 나는 이것을 시도 할 것이다 .. –