저는 앱을 만들고 있는데, 하나의 클래스에 SKScene
의 상당 부분을 썼습니다. 그것은 훌륭하지만, 지난 한 학기 동안 (자바) 과정을 수강했을 때 수락 된 업계 관행은 그것을 여러 클래스들로 분리하는 것입니다.내 기능은 어디에 두어야합니까?
이보다 구체적으로는, 내 (SpriteKit) 응용 프로그램은 고양이와 마우스를 포함하고 과정을 말했다 끝난 후, 내가 대신 SKScene
에 모든 정보를 포함, 나는 여러 클래스로의 일부를 분리해야한다는 결정 (A Player
슈퍼 클래스 (x 및 y 위치와 같은) 관련 정보와 함께 Scene 관련 함수 및 정보 만있는 함수 (예 : moveCat
)를 Scene 클래스에 포함하고 있습니다 (예 : Cat
및 Mouse
하위 클래스 포함).
문제은 함수의 내용에 있습니다.
특히, 기능 중 하나 인 pathBlocked
(원하는 이동 경로를 차단하는 장벽이 있는지 확인)은 Player
개체 (예 : 모든 정보 등)에 포함되지 않는 많은 정보를 사용합니다. 칠판의 장벽, 그리고 얼마나 많은 치즈가 모아 졌는지). 이동 pathBlocked
를 사용하는 고양이 (catAI
)에 속해야하는 기능이 있기 때문에
난 그냥 Scene
함수로 pathBlocked
을 떠날 수 없다. 장면의 방법이라면 효과가 없습니다. pathBlocked
에 전화하기를 원할 때마다 Scene 객체를 인스턴스화해야합니다.
Cat
및 Mouse
클래스를 만드는 것을 잊어 버리면 안되며, 속하지 않은 정보로 Player
클래스를 채워야합니까?
또는 제 3의 옵션이 있습니까?
코드 스 니펫이 필요하면 그 중 일부를 포함 할 수 있습니다.
감사합니다.
'pathBlocked'는 내가 장면의 방법으로 가장 적합하다고 생각합니다. – Alexander
언급을 잊어 버린 고양이는'pathBlocked'를 호출하는'catAI' 메소드를 가지고 있습니다. 장면의 방법이라면 효과가 없습니다. 'pathBlocked'를 호출하고 싶을 때마다 장면 객체를 인스턴스화 할 필요가 없을까요? –
cat 객체는 부모 장면에 대한 약한 참조를 보유 할 수 있으며 그러한 정보를 쿼리 할 수 있습니다. – Alexander