2012-05-23 2 views
1

Box2d로 내 세계에서 작업하고 있습니다. 근본적으로 한 쌍의 공은 주위에 튀고 모든 것이 멋쟁이 다.기능을 클래스로 분리하여 세계 객체 (cocos2d/box2d)와 통신합니다.

그러나 공을 끌어다 놓을 수있는 기능을 추가하고 싶습니다. Cocos2D에서 정적 스프라이트를 사용하여 이미이 작업을 수행 할 수 있습니다. 이제 Box2D를 사용하여 코드를 레이어 파일에 보관하는 대신 CCSprite 하위 클래스 (모든 터치 제스처 등)로 이동하고 싶습니다.

즉, CCSprite 하위 클래스와 내가 추측 한 세계? 이 일에 대해 어떻게 하나 가겠습니까? 감사합니다.

TLDR : 어떻게 레이어 파일에서 외부 파일로 객체 로직을 분리합니까?

답변

1

당신이 원하는 것을 할 수있는 많은 방법이 있습니다. 나는 이것을 좋아했다 : 나의 게임에는 gameController가있다 - NSObject의 서브 클래스. 그것의 init 메서드에서, 나는 더 많은 컨트롤러를 만들고있다 : 첫 번째 - Box2d 객체를 표시하기 위해, 두 번째 - come controls를 표시하기 위해. 어떤 객체가 어떤 객체 (예를 들어, 2 개의 특정 b2Body 사이의 충돌)에 대해 다른 객체에게 알릴 필요가 있다면, 포인터를 통해 포인터를 통해 포인터를 가리키는 소유자 컨트롤러에게 부모 컨트롤러에이 이벤트를 발생시키고, 부모 및 그의 모든 자식 - 컨트롤러, 등등. 예 : 노드를 두드리고 있습니다. 탭핑, 드래그 등의 모든 논리는 컨트롤러 클래스에 있습니다. 그런 다음이 노드를 제어하는 ​​컨트롤러는 이벤트를 발생시키고 다른 모든 컨트롤러는이를 알고 있으므로 무엇을해야할지 또는 아무것도하지 않을 수 있습니다. 이 경우, 내 box2dController는이 메시지를 받고 b2Bodies를 생성/이동합니다.

관련 문제